RE: Question about CAN Controller bit timing logic
"Liu, Jianye" <[email protected]> Mon, 10 Feb 2020 20:11:09 +0000
| Newsgroups | gmane.comp.hardware.bus.can |
|---|---|
| Message-ID | <SN6PR02MB550372D8B86E644E12CBD20C90190@SN6PR02MB5503.namprd02.prod.outlook.com> |
--_000_SN6PR02MB550372D8B86E644E12CBD20C90190SN6PR02MB5503namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi Ryan, Thanks for your answer! I understood the two type of synchronization and checked some documents bel= ow, but I am more interested about hardware architecture of synchronization= part which not included in these documents and website. Could you give me = more details about the actually hardware architecture in bit timing logic p= art? Best Regards, Rocky Leo From: Ryan Pannell<mailto:[email protected]> Sent: Monday, February 10, 2020 12:13 PM To: [email protected]<mailto:[email protected]= e>; [email protected]<mailto:[email protected]> Subject: [CANLIST] RE: Question about CAN Controller bit timing logic Hi Rocky, >> I am interested in hardware part about CAN Controller Data >> Synchronization, so could you tell me how does the Bit Time Logic >> detect the phase difference and convert the phase difference into >> exact number of TQs(Time Quanta) to help CAN controller synchronize >> the Data? There are 2 types of synchronisation =96 hard synchronisation and re-synchr= onisation. Hard synchronisation is performed at the start of frame, when the start of = frame bit goes from recessive to dominant state. It is subsequently re-synchronised when a bit changes from recessive to dom= inant state outside the synchronisation segment, at which point the control= ler will adjust the segment length to compensate. Within the controller, synchronisation is usually handled by a DPLL, which = basically compares the actual position of a bit edge to the expected edge a= nd adjust the bit time as necessary. There are a few documents that go into the topic in more detail, such as: * Bosch CAN Specification Version 2.0 * ISO 11898 * NXP AN1798 * Microchip AN754 * Kvaser have several PDFs and even videos, I believe * Google is your friend I hope this helps. Best, Ryan --_000_SN6PR02MB550372D8B86E644E12CBD20C90190SN6PR02MB5503namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable <html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc= hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of= fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1= 252"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:DengXian; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:"\@DengXian"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri",sans-serif;} .MsoChpDefault {mso-style-type:export-only;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:1133711763; mso-list-type:hybrid; mso-list-template-ids:-256742628 -711711254 134807555 134807557 134807553 = 134807555 134807557 134807553 134807555 134807557;} @list l0:level1 {mso-level-start-at:0; mso-level-number-format:bullet; mso-level-text:-; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Calibri",sans-serif; mso-fareast-font-family:Calibri;} @list l0:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New";} @list l0:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l0:level4 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l0:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New";} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} @list l0:level7 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Symbol;} @list l0:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:"Courier New";} @list l0:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-.25in; font-family:Wingdings;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --></style> </head> <body lang=3D"EN-US" link=3D"blue" vlink=3D"#954F72"> <div class=3D"WordSection1"> <p class=3D"MsoNormal">Hi Ryan,</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Thanks for your answer!</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">I understood the two type of synchronization and che= cked some documents below, but I am more interested about hardware architec= ture of synchronization part which not included in these documents and webs= ite. Could you give me more details about the actually hardware architecture in bit timing logic part?</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Best Regards,</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Rocky Leo</p> <div style=3D"mso-element:para-border-div;border:none;border-top:solid #E1E= 1E1 1.0pt;padding:3.0pt 0in 0in 0in"> <p class=3D"MsoNormal" style=3D"border:none;padding:0in"><b>From: </b><a hr= ef=3D"mailto:[email protected]">Ryan Pannell</a><br> <b>Sent: </b>Monday, February 10, 2020 12:13 PM<br> <b>To: </b><a href=3D"mailto:[email protected]">canlist_NOT@= vector-informatik.de</a>; <a href=3D"mailto:[email protected]">[email protected]= e</a><br> <b>Subject: </b>[CANLIST] RE: Question about CAN Controller bit timing logi= c</p> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">Hi Rocky,<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">>> </span> I am interested in hardware part about CAN Controller Data <o:p></o:p></p> <p class=3D"MsoNormal">>> Synchronization, so could you tell me = how does the Bit Time Logic <br> >> detect the phase difference and convert the phase difference into = <br> >> exact number of TQs(Time Quanta) to help CAN controller synchroniz= e <br> >> the Data?<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">There are 2 types of synchronisation =96 hard synchronisation and re-= synchronisation.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">Hard synchronisation is performed at the start of frame, when the sta= rt of frame bit goes from recessive to dominant state.<o:p></o:p></span></p= > <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">It is subsequently re-synchronised when a bit changes from recessive = to dominant state outside the synchronisation segment, at which point the c= ontroller will adjust the segment length to compensate.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">Within the controller, synchronisation is usually handled by a DPLL, = which basically compares the actual position of a bit edge to the expected = edge and adjust the bit time as necessary.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">There are a few documents that go into the topic in more detail, such= as:<o:p></o:p></span></p> <ul style=3D"margin-top:0in" type=3D"disc"> <li class=3D"MsoListParagraph" style=3D"margin-left:0in;mso-list:l0 level1 = lfo1"><span lang=3D"EN-GB" style=3D"mso-fareast-language:EN-US">Bosch CAN S= pecification Version 2.0<o:p></o:p></span></li><li class=3D"MsoListParagrap= h" style=3D"margin-left:0in;mso-list:l0 level1 lfo1"><span lang=3D"EN-GB" s= tyle=3D"mso-fareast-language:EN-US">ISO 11898<o:p></o:p></span></li><li cla= ss=3D"MsoListParagraph" style=3D"margin-left:0in;mso-list:l0 level1 lfo1"><= span lang=3D"EN-GB" style=3D"mso-fareast-language:EN-US">NXP AN1798<o:p></o= :p></span></li><li class=3D"MsoListParagraph" style=3D"margin-left:0in;mso-= list:l0 level1 lfo1"><span lang=3D"EN-GB" style=3D"mso-fareast-language:EN-= US">Microchip AN754<o:p></o:p></span></li><li class=3D"MsoListParagraph" st= yle=3D"margin-left:0in;mso-list:l0 level1 lfo1"><span lang=3D"EN-GB" style= =3D"mso-fareast-language:EN-US">Kvaser have several PDFs and even videos, I= believe<o:p></o:p></span></li><li class=3D"MsoListParagraph" style=3D"marg= in-left:0in;mso-list:l0 level1 lfo1"><span lang=3D"EN-GB" style=3D"mso-fare= ast-language:EN-US">Google is your friend<o:p></o:p></span></li></ul> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">I hope this helps.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">Best,<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"mso-fareast-language:E= N-US">Ryan<o:p></o:p></span></p> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> </body> </html> --_000_SN6PR02MB550372D8B86E644E12CBD20C90190SN6PR02MB5503namp_-- -- Archives and useful links: http://groups.yahoo.com/group/CANbus Subscribe and unsubscribe at www.vector.com/canlist/ Report any problems to <[email protected]>