| Author | 
                
Topic | 
                  | 
              
              
                | 
                 ctacke 
                 
                
                877 Posts  | 
                
                  
                    
                      
                       Posted - 24 Nov 2004 :  14:16:05
                        
                        
                      
  | 
                     
                    
                       CAN Driver Specification
  The ADS CAN driver provides a stream driver interface to the Philips SJA1000 CAN controller found on many Eurotech products.
  The driver operates in "PeliCAN" mode.  This mode supports both 11- and 29-bit identifiers, as well as a number of other advanced CAN features.
  The specification describes how to use the stream driver functions to access the features of the CAN controller.
 
  Revision History
  The following list summarizes the changes in the driver specification.   See the spec for full details. 1.6 (26-Sept-2007)   PDF 109kB - Adds IOCTL_CAN_GET_QUEUE_SIZE
  1.5 (2-Oct-2006)   PDF 150kB - Adds IOCTL_CAN_FLUSH_MSGS - Adds events EV_CAN_DATAQ_FULL and EV_CAN_DATAQ_THRESHOLD - Updated format of driver spec document
  1.4 (16-May-2005)   PDF 270kB -	Added IOCTL_CAN_GET_SAMPLE_POINT and IOCTL_CAN_SET_SAMPLE_POINT -	Modified IOCTL_CAN_GET_BAUDRATE to read the actual baudrate from the CAN chip -	Added CAN_ERROR_INPUT_OUT_OF_RANGE error code
  1.3 (11-Mar-2005)  -	ReadFile and WriteFile support multiple messages -	Added DataReadyEvent
  1.2 (30-Nov-2004)  Included with AGX build 4.20.10, VGX build 4.20.12 - Adds IOCTL_GET_DRIVER_VERSION - Changes IOCTL_CAN_READ_ACCEPTANCE_FILTER to IOCTL_CAN_GET_ACCEPTANCE_FILTER
  1.1 (24-Nov-2004)  Included with GCX build 4.20.05 - Updates format of CAN_MSG struct
  1.0 (15-Nov-2004)  Included with AGX build 4.20.09 - Initial release.
  0.1 Applicability: VGX build 4.20.12 Preliminary release.
  Sample Applications
  CAN application samples are posted at Topic 1739.
  Download ADSerror.h from topic 1915.
  For further reading, see the  CAN topic index
 
  Edited by akidder 13-Jan-2005: Add revision history. Change topic name from "ADS PeliCAN driver" to "ADS CAN driver specification" Edited by akidder 17-Feb-2005: Add link to CAN topic index. Editec by akidder 24-Oct-2006: Add details and link for spec 1.5 | 
                     
                   
                 | 
              
              
                | 
                 ctacke 
                 
                
                877 Posts  | 
                
                  
                    
                      
                       Posted - 03 Dec 2004 :  14:06:32
                        
                        
                      
  | 
                     
                    
                       Update
  Specification 1.2 has been released and the table above has been updated to reflect its support. | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                | 
                 akidder 
                 
                
                1519 Posts  | 
                
                  
                    
                      
                       Posted - 14 Jan 2005 :  11:18:12
                        
                        
                      
  | 
                     
                    
                       Document update
  We've released an update to the v1.2 document that corrects a couple document numbering errors in the header and footer.  It also adds a note that you'll need to reset the chip if a BUS_OFF error has occurred.
 
  Value for nNumberOfBytesToRead/Write 
  While ReadFile() and WriteFile() don't currently use the nNumberOfBytesToRead/Write parameter, you should set its value to sizeof(CAN_MSG).  E.g.:
 
 ReadFile(hCanPort, &RxCanMsg, sizeof(CAN_MSG), &dwBytesRead, NULL); WriteFile(hCanPort, &TxCanMsg, sizeof(CAN_MSG), &dwBytesWritten, NULL);
   |  
 
 
  | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                | 
                 ctacke 
                 
                
                877 Posts  | 
                
                  
                    
                      
                       Posted - 19 May 2005 :  10:31:33
                        
                        
                      
  | 
                     
                    
                       Update
  Specification 1.4 has been released and the table above has been updated to reflect its support. | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                | 
                 jnosek 
                 
                
                3 Posts  | 
                
                  
                    
                      
                       Posted - 05 Sep 2006 :  13:04:50
                        
                        
                      
  | 
                     
                    
                       Usage Note: Detecting Bus Idle State
  It is possible to detect the idle state of the CAN bus by reading the status register of the SJA1000 CAN controller.
  A call to IOCTL_CAN_GET_STATUS_REG returns the byte of the SJA1000 Status register. Bit 4 of the register is the Receive Status. Bit 5 of the register is the Transmit Status.   If both are 0, then the CAN bus is idle. | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                | 
                 jjoseph 
                 
                
                47 Posts  | 
                
                  
                    
                      
                       Posted - 09 Oct 2007 :  17:21:24
                        
                      
  | 
                     
                    
                       Update Released specification for driver Revision 1.6 | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                | 
                 akidder 
                 
                
                1519 Posts  | 
                
                  
                    
                      
                       Posted - 06 Oct 2010 :  17:00:43
                        
                        
                      
  | 
                     
                    
                       #asyncTXRX
  2009 Bug Fix: Potential Corruption of CAN Message Data
  An issue in the CAN driver was detected in early 2009 in which erroneous data could be read or written when messages are being transmitted and received simultaneously.  The issue has been corrected in the CAN driver and has since been built into most current CAN driver releases (see CE build history of your product for confirmation).
  The issue does not affect applications that only monitor the CAN bus (read-only), and does not have an impact on applications in which CANbus is call-and-response.  Errors only occur when messages are being transmitted and received simultaneously. | 
                     
                    
                        | 
                     
                   
                 | 
              
              
                |   | 
                
Topic | 
                  |