CANopen णᩲҟඑ⌕ᜐ⌆ՈCAN-busʌሖणᩲֲᔩ1ǃҟඑ (1)2ǃCAL णᩲ (2)3ǃCANopen (3)3ˊ1 ᇍᬥᄫOD (3)3ˊ2 CANopenỞᩳ (4)3ˊ3 CANopen8ᅮНẢ▊ (6)3ˊ4 CANopenᷛ৪ߚ‑ (8)3ˊ5 CANopen boot-upẋ࣏ (8)3ˊ6 CANopen⍜ᙃ᪱⊩ඊᅆ (9)4ǃᘏ (18)5ǃ᪸ᯢ (19)1ǃҟඑҢOSIตචൟՈᢖᑺᴹৠˈɴഎᘏඃตචϔჰাᅲɴњৰ1ሖ˄ĭˊሖ˅ǃৰ2ሖ˄᭄⏂Ჳሖ˅ǃৰ7ሖ˄ᑨϬሖ˅DŽЎɴഎᘏඃỞᐌাࣙᣀϔϾต↉ˈℸϡ◄ᡅৰ3ሖ˄Ӵṗሖ˅ৰ4ሖ˄ตචሖ˅ˈгϡ◄ᡅৰ5ሖ˄Ӯ᪡ሖ˅ৰ6ሖ˄ᦣẴሖ˅ՈϬDŽCAN˄Controller Area Network˅ɴഎᘏඃҙҙᅮНњৰ1ሖǃৰ2ሖ˄ᢅISO11898ᷛޚ˅˗ᅲ┉᪂ᩥЁˈẝϸሖᅠܼϵܰӊᅲɴˈ᪂ᩥҎਬ᮴◄ݡЎℸᓔথּ݇ḳӊ˄Software˅ӊ˄Firmware˅DŽẝϸሖᅠܼϵܰӊᅲɴˈৠᯊˈCANাᅮНĭˊሖ᭄⏂Ჳሖˈ≵᳝ᢈᅮᑨϬሖˈᴀᵯᑊϡᅠᭈˈ◄ᡅϔϾʌሖणᩲᴹᅮНCAN᭛ЁՈ11/29ԡᷛ৪ǃ8ᄫᅆ᭄ՈՓϬDŽ໐ϨˈѢCANᘏඃՈᎹϮႮࡼ࣪ᑨϬЁˈᱎᴹᱎ◄ᡅϔϾᓔᬒՈǃᷛޚ࣪Ոʌሖणᩲ˖ẝϾणᩲᬃᣕCANॖଚ᪂ՈѦϬᗻǃѦᤶᗻˈ࿁ᅲɴCAN ตචЁᦤկᷛޚՈǃඣϔՈிඣỞᩳᓣˈᦤկ᪂ࡳ࿁ᦣẴᮍᓣˈᠻᜐตචˊࡳ࿁DŽz ᑨϬሖ˄Application layer˅˖ЎตචЁ↣ϔϾ᳝ᬜ᪂῁࿁ᦤկϔඈ᳝ϬՈ᳡ࡵϢणᩲDŽz ỞᩳᦣẴ˄Communication profile˅˖ᦤկ‑า᪂ǃỞᩳ᭄ՈНˈᅮН᭄ỞᩳᮍᓣDŽz ᪂ᦣẴ˄Device proflile˅˖Ў᪂˄ି˅ࡴ৪ড়ᢈᇇՈᜐЎDŽϟ☦ՈতᅆᇚҟඑѢCANՈʌሖणᩲ˖CALणᩲѢCALणᩲᠽሩՈCANopenणᩲDŽCANopen णᩲᰃCAN-in-Automation(CiA)ᅮНՈᷛޚПϔˈᑊϨথᏗৢϡЙህቻᕫњᑓ⊯ՈᡓᩨDŽᇸ݊ᰃ⌆ˈCANopenणᩲᝯᩨЎᰃѢCANՈᎹϮிඣЁऴ:ᇐഄԡՈᷛޚDŽ᭄ₑᡅՈ᪂ିൟˈ՟བ᭄ᄫᢳՈṗܹṗߎഫǃȥࡼ᪂ǃ᪡᪂ǃࠊ఼ǃৃේ࣏ࠊ఼ේۅ఼ˈ῁ࢴЎĀ᪂ᦣẴāՈणᩲЁẟᜐᦣẴ˗Ā᪂ᦣẴāᅮНњϡৠିൟՈᷛޚ᪂ঞּ݊ᑨՈࡳ࿁DŽձ☤CANopenणᩲՈᬃᣕˈৃҹᇍϡৠॖଚՈ᪂Ởẋᘏඃẟᜐ‑าDŽOSIൟЁˈCANᷛޚǃCANopenणᩲПⒸՈ݇ிབϟ᠔߾˖C iA DS P-401C iA DS P-404 CiA DSP-xxxApplicationC hipData LinkPhysical Layer1.1 CANǃCANopenᷛޚOSIตචൟЁՈԡาḚ2ǃCAL णᩲCAL˄CAN Application Layer˅णᩲᰃֲࠡѢCANՈʌሖỞᩳणᩲЁՈϔˈ᳔ᮽϵPhilipsएћ᪂ᾬ⒬ࠊᅮDŽɴCALϵưএՈCANϬ᠋ࠊỤଚ▊ಶCiA˄CAN in Automation˅णӮᯣᯧˊǃথሩᑓDŽCALᦤկњ4ᑨϬሖ᳡ࡵࡳ࿁˖z CMS (CAN-based Message Specification)CMSᦤկњϔϾᓔᬒՈǃ☦ᇍᬥՈɳ๗ˈϬѢᅲɴϬ᠋ՈᑨϬDŽCMSᦤկѢবₓǃџӊǃඳିൟՈᇍᬥˈҹ᪂ᩥᢈᅮϔϾ᪂˄ᅆ⚍˅Ոࡳ࿁བԩᝯ᪃⒲˄՟བˈབԩϞṁϟṁ᱉ẋ8ᄫᅆՈϔඈ᭄˄ඳ˅ˈᑊϨ᳝ඌℶӴṗՈࡳ࿁˅DŽCMSҢMMS (Manufacturing Message Specification)ණᡓ໐ᴹDŽMMSᰃOSIЎᎹϮ᪂ՈẠ࣏ࠊ֕໐ࠊᅮՈᑨϬሖᢈᇇDŽz NMT (Network ManagemenT)ᦤկตචˊ˄བ߱ྟ࣪ǃਃࡼذℶᅆ⚍ˈպ⌟༅ᬜᅆ⚍˅᳡ࡵDŽẝ᳡ࡵᰃ₋ϬЏҢỞᩳᓣ˄᠔ҹা᳝ϔϾNMTЏᅆ⚍˅ᴹᅲɴՈDŽz DBT (DistriBuTor)ᦤկࡼᗕߚ‑CAN ID˄ℷᓣৡࢴЎCOB-IDˈCommunication Object Identifier˅᳡ࡵDŽẝ᳡ࡵᰃ₋ϬЏҢỞᩳᓣ˄᠔ҹা᳝ϔϾDBTЏᅆ⚍˅ᴹᅲɴՈDŽz LMT (Layer ManagemenT)LMTᦤկׂᬍሖখ᭄Ո᳡ࡵ˖ϔϾᅆ⚍˄LMT Master˅ৃҹ᪂าϔϾᅆ⚍˄LMT Slave˅Ոᶤሖখ᭄˄བᬍবϔϾᅆ⚍ՈNMTഄഔˈᬍবCANষՈԡᅮᯊ⊶Ľɋ˅DŽCMSЎᅗՈ⍜ᙃᅮНњ8ϾӬܜ൫ˈ↣ϾӬܜ൫ᢹ᳝220ϾCOB-IDˈᇇೈҢ1ࠄ1760DŽ࠽ԭՈᷛᖫ˄0ˈ1761-2031˅ֱНඝNMTˈDBTLMTˈᢅᜬ2-1DŽᜬ2-1 ᇘࠄCAL᳡ࡵᇍᬥՈCOB-ID(11ԡCANᷛ৪)COB-ID ᳡ࡵᇍᬥ0 NMT ਃࡼ/ذℶ᳡ࡵ1 - 220 CMSᇍᬥ Ӭܜ൫0221 - 440 CMSᇍᬥ Ӭܜ൫1441 - 660 CMSᇍᬥ Ӭܜ൫2661 - 880 CMSᇍᬥ Ӭܜ൫3881 - 1100 CMSᇍᬥ Ӭܜ൫41101 - 1320 CMSᇍᬥ Ӭܜ൫51321 - 1540 CMSᇍᬥ Ӭܜ൫61541 - 1760 CMSᇍᬥ Ӭܜ൫71761 - 2015 NMT ᅆ⚍ֱᡸ2016 - 2031 NMTˈLMTˈDBT᳡ࡵ⊼ᛣẝᰃCAN2.0Aᷛޚˈ11ԡIDᇇೈ[0ˈ2047]ˈϵѢग़ॳ└ࠊ[0ˈ2031]DŽབᵰՓϬCAN2.0B ᷛޚˈ29ԡIDᑊϡᬍবẝϾᦣẴ˗ᜬЁՈ11ԡᇘࠄ29ԡCOB-IDЁՈ᳔ʌ11ԡˈҹႷѢᜬЁՈCOB-ID ᇇೈবᕫ᩼DŽ3ǃCANopenCALᦤկњ᠔᳝Ոตචˊ᳡ࡵ᭛ӴễणᩲˈԚᑊ≵᳝ᅮНCMSᇍᬥՈݙᆍ້ℷỞᩳՈᇍᬥՈିൟ˄ᅗাᅮНњhowˈ≵᳝ᅮНwhat˅DŽ໐ẝℷᰃCANopenߛܹ⚍DŽCANopenᰃCAL܄ϞᓔথՈˈՓϬњCALỞᩳ᳡ࡵणᩲᄤ▊ˈᦤկњߚᏗᓣࠊிඣՈϔᅲɴᮍḜDŽCANopenֱ᪅ตචᅆ⚍ѦϬᗻՈৠᯊܕ᩼ᅆ⚍Ոࡳ࿁╓ᛣᠽሩ˖ऩᴖDŽCANopenՈḌᖗὖᗉᰃ᪂ᇍᬥᄫ˄OD˖Object Dictionary˅ˈ݊ᅗɴഎᘏඃ˄ProfibusˈInterbus-S˅ிඣЁгՓϬẝ᪂ᦣẴᔶᓣDŽ⊼ᛣ˖ᇍᬥᄫϡᰃCALՈϔᾬߚˈ໐ᰃCANopenЁᅲɴՈDŽϟ☦ܜҟඑᇍᬥᄫ˄OD˖Object Dictionary˅ˈ✊ৢݡҟඑCANopenỞᩳᴎࠊDŽ3.1 ᇍᬥᄫODᇍᬥᄫ˄OD˖Object Dictionary˅ᰃϔϾ᳝ᑣՈᇍᬥඈ˗↣Ͼᇍᬥ₋ϬϔϾ16ԡՈ௦ᓩؐᴹᇏഔˈЎњܕ᩼᪃⒲᭄ᵘЁՈऩϾܗˈৠᯊᅮНњϔϾ8ԡՈᄤ௦ᓩˈᇍᬥᄫՈᵘখ+ᜬ3-1DŽϡᡅᝯᇍᬥᄫЁ௦ᓩؐԢѢ0x0FFFՈþdata typesÿ-᠔ẻᚥˈᅗӀҙҙᰃϔѯ᭄ିൟᅮНDŽϔϾᅆ⚍ՈᇍᬥᄫՈ᳝݇ᇇೈ0x1000ࠄ0x9FFFПⒸDŽᜬ3-1 CANopenᇍᬥᄫỞϬᵘ௦ᓩᇍᬥ0000 Notused0001 - 001F ☝ᗕ᭄ିൟ˄ᷛޚ᭄ିൟˈབBooleanˈInteger 16˅0020 - 003F ᴖ᭄ିൟ˄8ᅮНϵऩିൟඈড়៤ՈᵘབPDOCommParˈSDOParameter˅0040 - 005F ࠊỤଚᢈᅮՈᴖ᭄ିൟ0060 - 007F ᪂ᄤणᩲᢈᅮՈ☝ᗕ᭄ିൟ0080 - 009F ᪂ᄤणᩲᢈᅮՈᴖ᭄ିൟ00A0 - 0FFF Reserved1000 - 1FFF Ởᩳᄤणᩲऎඳ(བ᪂ିൟˈ⏝᪳ᆘᄬ఼ˈᬃᣕՈPDO᭄ₓ)2000 - 5FFF ࠊỤଚĽᅮᄤणᩲऎඳ6000 - 9FFF ᷛޚՈ᪂ᄤणᩲऎඳ(՟བĀDSP-401 I/O ഫ᪂ᄤणᩲā˖Read State 8 Input Lines)A000 - FFFF ReservedCANopenตචЁ↣Ͼᅆ⚍῁᳝ϔϾᇍᬥᄫDŽᇍᬥᄫࣙњᦣẴẝϾ᪂ᅗՈตචᜐЎՈ᠔᳝খ᭄DŽϔϾᅆ⚍ՈᇍᬥᄫᰃϹᄤ᭄᭛ḷ˄EDS˖Electronic Data Sheet˅ЁᦣẴ້ᩴᔩർϞDŽϡᖙᡅгϡ◄ᡅỞẋCAN-busĀᅵ⒲āϔϾᅆ⚍ՈᇍᬥᄫЁՈ᠔᳝খ᭄DŽབᵰϔϾᅆ⚍ϹḐᣝ+ർϞՈᇍᬥᄫẟᜐᦣẴ݊ᜐЎˈгᰃৃҹՈDŽᅆ⚍ᴀᵯা◄ᡅ࿁ᦤկᇍᬥᄫЁᖙ◄Ոᇍᬥ˄໐CANopen ᢈᅮЁᖙ◄Ո-ᅲ┉ϞᰃᕜᇥՈ˅ˈҹঞ݊ᅗৃọᢽՈǃᵘ៤ᅆ⚍ᾬߚৃ‑าࡳ࿁ՈᇍᬥDŽCANopenϵϔி߫ࢴЎᄤणᩲՈ᭛ḷඈ៤DŽỞᩳᄤणᩲ˄communication profile˅ˈᦣẴᇍᬥᄫՈЏᡅᔶᓣᇍᬥᄫЁՈỞᩳᄤणᩲऎඳЁՈᇍᬥˈỞᩳখ᭄DŽৠᯊᦣẴCANopenỞᩳᇍᬥDŽẝϾᄤणᩲỆϬѢ᠔᳝ՈCANopen᪂DŽẜ᳝᪂ᄤणᩲ˄device profile˅ˈЎϡৠିൟ᪂ᅮНᇍᬥᄫЁՈᇍᬥDŽֲࠡᏆ᳝5ϡৠՈ᪂ᄤणᩲˈᑊ᳝ℷথሩDŽ᪂ᄤणᩲЎᇍᬥᄫЁՈ↣ϾᇍᬥᦣẴњᅗՈࡳ࿁ǃৡᄫǃ௦ᓩᄤ௦ᓩǃ᭄ିൟˈҹঞẝϾᇍᬥᰃᖙ◄ՈẜᰃৃọՈˈẝϾᇍᬥᰃাᪿǃাݭ້ৃᪿݭDŽ⊼ᛣ˖ϔϾ᪂ՈỞᩳࡳ࿁ǃỞᩳᇍᬥǃϢ᪂ּ݇ՈᇍᬥҹঞᇍᬥՈׅؐϵϹᄤ᭄᭛ḷ˄EDS ˖Electronic Data Sheet ˅ЁᦤկDŽऩϾ᪂Ոᇍᬥ‑าՈᦣẴ᭛ӊࢴ᪂‑า᭛ӊ˄DCF ˖Device Configuration File ˅ˈᅗEDS ּ᳝ৠՈᵘDŽѠ້᭛ӊିൟ῁CANopen ᢈᇇЁᅮНDŽ᪂ᄤणᩲᅮНњᇍᬥᄫЁાѯOD ᇍᬥᰃᖙ◄ՈˈાѯᰃৃọՈ˗ᖙ◄Ոᇍᬥᑨ᪩ֱᣕ᳔ᇥ᭄ֲҹޣᇣᅲɴՈᎹₓDŽৃọ-̣̣ỞᩳᾬߚϢ᪂ּ݇ᾬߚ̣̣ৃҹḍ◄ᡅࡴҹᠽሩCANopen ᪂Ոࡳ࿁DŽབᵰ◄ᡅՈ-᱉ẋњ᪂ᄤणᩲЁৃҹᦤկՈˈ᪂ᄤणᩲЁᏆ8НϵᱷाⒸᦤկඝॖଚՈĽᅮࡳ࿁ՓϬDŽᇍᬥᄫЁᦣẴỞᩳখ᭄ᾬߚᇍ᠔᳝CANopen ᪂˄՟བOD ЁՈᇍᬥᰃּৠՈˈᇍᬥؐϡᖙϔᅮּৠ˅῁ᰃϔḋՈDŽᇍᬥᄫЁ᪂ּ݇ᾬߚᇍѢϡৠିՈ᪂ᰃϡৠՈDŽ3ˊ2 CANopen Ởᩳࠡ☦᪸ᯢњCANopen ЁᇍᬥᄫՈὖᗉˈɴ៥ӀᴹҟඑCANopen ตචЁՈỞᩳ⍜ᙃˈᅗӀՈݙᆍࡳ࿁ˈᤶহ᪡˖CANopen ỞᩳᓣDŽ⊼ᛣ˖᪻ऎߚᇍᬥᄫЁՈᇍᬥ˄ՓϬᇍᬥᄫ௦ᓩᄤ௦ᓩ˅Ởᩳᇍᬥ˄້⍜ᙃˈՓϬCOB-ID ˅DŽCANopen ỞᩳൟᅮНњ4᭛˄Ởᩳᇍᬥ˅˖ 1ˊ ˊ᭛z ሖˊˈตචˊID ߚ‑᳡ࡵ˖བ߱ྟ࣪ˈ‑าตචˊ˄ࣙᣀ˖ᅆ⚍ֱᡸ˅DŽz ᳡ࡵणᩲ৪ড়CAL ЁՈLMT ˈNMT DBT ᳡ࡵᾬߚDŽẝѯ᳡ࡵ῁ᰃѢЏҢỞᩳᓣ˖CAN ตචЁˈা࿁᳝ϔϾLMT ˈNMT DBT Џᅆ⚍ҹঞϔϾϾҢᅆ⚍DŽ2ˊ ᳡ࡵ᭄ᇍᬥSDO(Service Data Object)z ỞẋՓϬ௦ᓩᄤ௦ᓩ˄CAN ᭛ՈࠡϾᄫᅆ˅ˈSDO Փᅶ᠋ᴎ࿁᪃⒲᪂˄᳡ࡵ఼˅ᇍᬥᄫЁՈ-˄ᇍᬥ˅DŽz SDO ỞẋCAL ЁܗඳՈCMS ᇍᬥᴹᅲɴˈܕ᩼Ӵễӏԩ⑃ᑺՈ᭄˄ᔧ᭄᱉ẋ4Ͼᄫᅆᯊߚᢚ៤Ͼ᭛˅DŽz णᩲᰃܲᩨ᳡ࡵିൟ˖Ў↣Ͼ⍜ᙃϣ៤ϔϾᑨਘ˄ϔϾSDO ◄ᡅϸϾID ˅DŽSDO ᪻∖ᑨਘ᭛ᘏᰃࣙ8Ͼᄫᅆ˄≵᳝ᛣНՈ᭄⑃ᑺৰϔϾᄫᅆЁᜬ߾ˈৰϔϾᄫᅆᨎᏺणᩲֵᙃ˅DŽSDO Ởᩳ᳝ṇՈणᩲᢈᅮDŽ3ˊ ẋ᭄࣏ᇍᬥPDO ˄Process Data Object ˅z ϬᴹӴṗᅲᯊ᭄ˈ ᭄ҢϔϾϣѻ້ӴࠄϔϾϾ⍜᯽້DŽ᭄Ӵễ└ࠊ1ࠄ8Ͼᄫᅆ˄՟བˈϔϾPDO ৃҹӴṗ᳔64Ͼ᭄ᄫI/O ؐˈ້4Ͼ16ԡՈAD ؐ˅DŽz PDO Ởᩳ≵᳝णᩲᢈᅮDŽPDO ᭄ݙᆍাϵᅗՈCAN ID ᅮНˈ؛ᅮϣѻ້⍜᯽້کẝϾPDO Ո᭄ݙᆍDŽz ↣ϾPDO ᇍᬥᄫЁϬ2ϾᇍᬥᦣẴ˖PDO Ởᩳখ᭄˖ࣙાϾCOB-ID ᇚᝯPDO ՓϬˈӴṗିൟˈࡅℶᯊⒸᅮᯊ఼਼ᳳDŽ PDO ᇘখ᭄˖ࣙϔϾᇍᬥᄫЁᇍᬥՈ߫ᜬˈẝѯᇍᬥᇘࠄPDO ₐˈࣙᣀᅗӀՈ᭄⑃ᑺ˄in bits ˅DŽϣѻ້⍜᯽້ᖙ/کẝϾᇘˈҹᢧ₎PDO ݙᆍDŽz PDO ⍜ᙃՈݙᆍᰃ8ᅮНՈ˄້ตචਃࡼᯊ‑าՈ˅˖ᇘᑨϬᇍᬥࠄPDO Ёᰃ᪂ᇍᬥᄫЁᦣẴՈDŽབᵰ᪂˄ϣѻ້⍜᯽້˅ᬃᣕৃবPDO ᇘˈὧМՓϬSDO ᭛ৃҹ‑าPDO ᇘখ᭄DŽ z ৃҹ᳝Ӵễᮍᓣ˖ᩨ᳡ࡵିൟṗᅲᯊ᭄PDOৠℹ˄ỞẋᬊSYNC ᇍᬥᅲɴৠℹ˅☢਼ᳳ˖ϵẠ࣏ᏻ8ᢪথӴễˈ້ϵ᪂ᄤणᩲЁᢈᅮՈᇍᬥĽᅮџӊ8ᢪথӴễDŽ ਼ᳳ˖Ӵễ↣1ࠄ240ϾSYNC ⍜ᙃৢᢪথDŽ ᓖℹϵẠ࣏ᏻᢪথӴễDŽϵ᪂ᄤणᩲЁᢈᅮՈᇍᬥĽᅮџӊᢪথӴễDŽᜬ3-2ඝߎᴹњϵӴṗିൟᅮНՈϡৠPDO ӴṗᓣˈӴṗିൟЎPDO Ởᩳখ᭄ᇍᬥՈϔᾬߚˈϵ8ԡ᮴৪োᭈ᭄ᅮНDŽᜬ3-2 PDO ӴṗିൟᅮНᢪথPDO Ոᴵӊ(B = both needed O = one or both) ӴṗିൟSYNCRTREventPDO Ӵṗ0 B - B ৠℹˈ☢ᕾɳ 1-240 O - - ৠℹˈᕾɳ 241-251 - -- Reserved252 B B - ৠℹˈRTR Пৢ 253 - O - ᓖℹˈRTR Пৢ 254 - O O ᓖℹˈࠊỤଚĽᅮџӊ 255 - O O ᓖℹˈ᪂ᄤणᩲĽᅮџӊ ᪸ᯢ˖z SYNC –ᬊࠄSYNC-object DŽ z RTR ˉᬊࠄẠ࣏ᏻDŽz Event –՟བ᭄ؐᬍব້ᅮᯊ఼ЁᮁDŽz ӴṗିൟЎ˖1ࠄ240ᯊˈ᪩᭄ᄫҷᜬϸϾPDO ПⒸՈSYNC ᇍᬥՈ᭄ֲ˅DŽz ϔϾPDO ৃҹᣛᅮϔϾࡅℶᯊⒸˈेᅮНϸϾẢනPDO ӴṗՈ᳔ᇣⒸ╘ᯊⒸˈὃܡϵѢʌӬܜ൫ֵᙃՈ᭄ₓˈྟඌऴᘏඃˈ໐Փ݊ᅗӬܜ൫ṇԢՈ᭄᮴ঢѝᘏඃՈ⒲L DŽࡅℶᯊⒸϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡ100us DŽ z ϔϾPDO ৃҹᣛᅮϔϾџӊᅮᯊ਼ᳳˈᔧ᱉ẋᅮᯊᯊⒸৢˈϔϾPDO Ӵṗৃҹᝯᢪথ˄ϡ◄ᡅᢪথԡ˅DŽџӊᅮᯊ਼ᳳϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡ1ms DŽ z PDO ỞẋCAL ЁᄬټџӊିൟՈCMS ᇍᬥᅲɴDŽPDO ᭄Ӵễ≵᳝Ϟሖणᩲˈ໐ϨPDO ᩨ˄ϔϾPDO ◄ᡅϔϾCAN-ID ˅DŽ↣ϾPDO ᭛Ӵễ᳔8Ͼᄫᅆ˄64ԡ˅᭄DŽ4ˊ 8ᅮН᭛້Ľ⅞ࡳ࿁ᇍᬥz ৠℹ˄SYNC ˅ตචᇇೈݙৠℹ˄ᇸ݊ȥࡼᑨϬЁ˅˖ᭈϾตචᇇೈݙᔧࠡṗܹؐޚৠᯊֱᄬˈ╓ৢӴễ˄བᵰ◄ᡅ˅ˈḍࠡϔϾSYNC ৢᬊࠄՈ᭛ᮄṗߎؐDŽЏҢᓣ˖SYNC Џᅆ⚍ᅮᯊথễSYNC ᇍᬥˈSYNC Ңᅆ⚍ᬊࠄৢৠℹᠻᜐӏࡵDŽ SYNC ᭛ӴễৢˈඝᅮՈᯊⒸज़ষݙӴễϔϾৠℹPDO DŽ ϬCAL ЁᴀবₓିൟՈCMS ᇍᬥᅲɴDŽDŽSYNC ᭛ৃҹϡz ᯊⒸᷛᩴᇍᬥ˄Time Stamp ˅ЎᑨϬ᪂ᦤկ݀݅ՈᯊⒸᏻখDŽ ϬCAL ЁᄬټџӊିൟՈCMS ᇍᬥᅲɴDŽϔϾऩԡऩԡϾџӊᅮᯊ਼᭛≵᳝ܲᩨӴễ᭄ҹՓ᭛ሑৃ࿁ڱDŽCANopen COB-ID ᓎᩲϬϔϾ᳔ʌӬܜ൫Ոҹֱ᪅ৠℹֵোℷᐌӴễz ௫ᗹџӊ˄Emergency˅᪂ݙᾬ⏝᪳ᢪথDŽϬCALЁᄬټџӊିൟՈCMSᇍᬥᅲɴDŽz ᅆ⚍/ᇓੑֱᡸ˄Node/Life guarding˅DŽЏҢỞᩳᓣNMTЏᅆ⚍֕ᅆ⚍źᗕ˖ࢴᅆ⚍ֱᡸ˄Node guarding˅DŽᅆ⚍гৃҹ˄ৃọᢽ˅֕NMTЏᅆ⚍Ոźᗕ˖ࢴᇓੑֱᡸ˄Life guarding˅DŽᔧNMT Ңᅆ⚍ᬊࠄNMTЏᅆ⚍থễՈৰϔϾNode Guard᭛ৢਃࡼᇓੑֱᡸDŽ Ẕ⌟᪂Ոตචষ⏝᪳˄ϡᰃ᪂ႮᵯՈ⏝᪳˅˖Ởẋᑨᗹᣛ߾ਞDŽḍNMTᅆ⚍ֱᡸणᩲᅲɴ˖ NMTЏᅆ⚍থễẠ࣏᪻∖ࠄϔϾĽᅮᅆ⚍ˈᅆ⚍ඝߎᑨਘˈᑨਘ᭛ЁࣙњẝϾᅆ⚍ՈźᗕDŽz Boot-UPЏҢỞᩳᓣNMTҢᅆ⚍ỞẋথễẝϾ᭛ˈNMTЏᅆ⚍᪸ᯢ᪩ᅆ⚍Ꮖඓϵ߱ྟ࣪źᗕẟܹ8᪡źᗕDŽ3-1 CANopen ᪂Ϟ☦ᦤࠄՈỞᩳᇍᬥିൟЁ᳝ѠϾᇍᬥϬѢ᭄ӴṗDŽᅗӀ₋ϬѠϡৠՈ᭄Ӵṗᴎࠊᅲɴ˖z SDO Ϭᴹ᪂ПⒸӴṗՈԢӬܜ൫᭄ˈൟՈᰃϬᴹ‑าCANopenตචϞՈ᪂DŽz PDO ϬᴹӴṗ8ᄫᅆᇥ᭄ˈ≵᳝݊ᅗणᩲ8᪂ᅮ˄ᛣੇ᭄ݙᆍᏆ8ܜᅮН˅DŽϔϾCANopen᪂ᖙ/ᬃᣕϔᅮ᭄ₓՈตචˊ᳡ࡵ˄ˊ᭛ˈadministrative messages˅ˈ◄ᡅႷᇥϔϾSDODŽ↣Ͼϣѻ⍜᯽ẋ᭄࣏Ո᪂◄ᡅႷᇥϔϾPDODŽ᠔᳝݊ᅗՈỞᩳᇍᬥᰃৃọՈDŽϔϾCANopen᪂ЁCANỞᩳষǃᇍᬥᄫᑨϬ࣏ᑣПⒸՈ༘ிབ3-1᠔߾DŽ3ˊ3 CANopen8ᅮНẢ▊ЎњޣᇣऩตචՈඈᗕᎹₓˈCANopenᅮНњᔎࠊᗻՈׅᷛ৪˄CAN-ID˅ߚ‑ᜬDŽẝѯᷛᖫ৪8᪡źᗕϟৃϬˈỞẋࡼᗕߚ‑ẜৃׂᬍҪӀDŽCANopen᪂ᖙ/ᅗ᠔ᬃᣕՈỞᩳᇍᬥՈᦤկּᑨՈᷛ৪DŽׅIDߚ‑ᜬᰃѢ11ԡCANˉIDˈࣙϔϾ4ԡՈࡳ࿁ۅᾬߚϔϾ7ԡՈᅆ⚍ID(Node-ID)ᾬߚDŽབ3-2᠔߾DŽ3-2 8ᅮНẢ▊IDNode-ID ϵிඣ▊៤ଚᅮНˈ՟བỞẋ᪂ϞՈᢼۅᓔ݇᪂าDŽNode-ID ᇇೈᰃ1~127˄0ϡܕ᩼ᝯՓϬ˅DŽ8ᅮНՈẢ▊ᅮНњ4ϾᬊPDO ˄Receive ˉPDO ˅ˈ4ϾথễPDO ˄Transmit ˉPDO ˅ˈ1ϾSDO ˄ऴϬ2ϾCAN-ID ˅ˈ1Ͼ௫ᗹᇍᬥ1Ͼᅆ⚍⏝᪳ࠊ(Node-Error-Control)ID DŽгᬃᣕϡ◄ܲᩨՈNMT-Module-Control ᳡ࡵˈSYNC Time Stamp ᇍᬥՈᑓ᪁DŽׅID ߚ‑ᜬབᜬ3-3᠔߾DŽᜬḐ 3-3 CANopen 8ᅮНЏ/ҢẢ▊CAN ᷛ৪ߚ‑ᜬCANopen 8ᅮНЏ/ҢẢ▊Ոᑓ᪁ᇍᬥᇍᬥࡳ࿁ۅ ˄ID-bits 10-7˅COB-ID Ởᩳখ᭄OD ЁՈ௦ᓩNMT Module Control 0000 000H -SYNC 0001 080H 1005H ˈ1006H ˈ1007HTIME SSTAMP0010100H1012H ˈ1013HCANopen Џ/ҢẢ▊Ոᇍᇍᬥ ᇍᬥ ࡳ࿁ۅࡳ࿁ۅ ˄ID-bits 10-7˅COB-IDỞᩳখ᭄OD ЁՈ௦ᓩ௫ᗹ 0001 081H-0FFH 1024H ˈ1015H PDO1(থễ) 0011 181H-1FFH 1800H PDO1(ᬊ) 0100 201H-27FH 1400H PDO2(থễ) 0101 281H-2FFH 1801H PDO2(ᬊ) 0110 301H-37FH 1401H PDO3(থễ) 0111 381H-3FFH 1802H PDO3(ᬊ) 1000 401H-47FH 1402H PDO4(থễ) 1001 481H-4FFH 1803H PDO4(ᬊ) 1010 501H-57FH 1403H SDO(থễ/᳡ࡵ఼) 1011 581H-5FFH 1200H SDO(ᬊ/ᅶ᠋) 1100 601H-67FH 1200HNMT Error Control 1110701H-77FH1016H-1017H⊼ᛣ˖z PDO/SDO থễ/ᬊᰃϵ˄slave ˅CAN ᅆ⚍ᮍᢆᆳՈDŽz ࠊࣙᣀᅆ⚍ֱᡸ˄Node Guarding ˅ˈᖗᲷ᭛˄Heartbeat ˅Boot-up णᩲDŽ ՈᑓՈᇍNMT ⏝᪳ࠊࣙᣀᅆ⚍N ˅H3ˊ4 CANopenᷛ৪ߚ‑IDഄഔߚ‑ᜬϢ8ᅮНՈЏҢẢ▊˄set˅ּᇍᑨˈЎ᠔᳝ՈᇍIDᰃϡৠՈˈ᠔ҹᅲ┉Ϟা᳝ϔϾЏ᪂(ک᠔᳝ẢՈᅆ⚍ID)࿁ẢՈ↣ϾҢᅆ⚍˄᳔127Ͼ˅ҹᇍᮍᓣỞᩳDŽϸϾẢϔ᰻ՈҢᅆ⚍ϡ࿁ỞᩳˈЎᅗӀᕐℸϡکᇍᮍՈᅆ⚍IDDŽ↨ṇϞᜬՈIDᇘCALՈᇘˈᰒ߾њ᳝Ľᅮࡳ࿁ՈCANopenᇍᬥབԩᇘࠄCALЁϔჰՈCMSᇍᬥDŽCANopenตචЁCAN ᷛ৪˄COB-ID˅ߚ‑3ϡৠᮍ⊩˖z ՓϬ8ᅮНՈЏҢẢ▊DŽIDᰃׅՈˈϡ◄ᡅ‑าDŽབᵰᅆ⚍ᬃᣕˈPDO᭄ݙᆍгৃҹ‑าDŽz ϞϹৢׂᬍPDOՈID˄8᪡źᗕ˅ˈՓϬ˄8ᅮНՈ˅SDOᅆ⚍ՈᇍᬥᄫЁỆᔧԡาẟᜐׂᬍDŽz ՓϬCAL DBT᳡ࡵ˖ᅆ⚍Ңᅆ⚍᳔߱ϵᅗӀՈ‑าIDᣛࢴDŽᅆ⚍IDৃҹϵ᪂ϞՈᢼۅᓔ݇‑าˈՓϬCAL LMT᳡ࡵẟᜐ‑าDŽᔧตච߱ྟ࣪ᅠ↩ˈᑊϨਃࡼৢˈЏᅆ⚍ŊܜỞẋ”Connect_Remote_Node”᭛˄ᰃϔϾCAL NMT᳡ࡵ˅↣ϾẢՈҢ᪂ᓎএϔϾᇍ᪡DŽϔᮺẝϾᇍ᪡ᓎএˈCANỞᩳID˄SDOPDO˅ϬCAL DBT᳡ࡵߚ‑དˈẝ◄ᡅᅆ⚍ᬃᣕᠽሩՈboot-upDŽ3ˊ5 CANopen boot-upẋ࣏ตච߱ྟ࣪ẋ࣏ЁˈCANopenᬃᣕᠽሩՈboot-upˈгᬃᣕ᳔ᇣ࣪boot-upẋ࣏DŽᠽሩboot-upᰃৃọՈˈ᳔ᇣboot-up߭ᖙ/ᝯ↣Ͼᅆ⚍ᬃᣕDŽϸିᅆ⚍ৃҹৠϔϾตචЁৠᯊᄬDŽབᵰՓϬCALՈDBT᳡ࡵẟᜐIDߚ‑ˈ߭ᅆ⚍ᖙ/ᬃᣕᠽሩboot-upẋ࣏DŽৃҹϬᅆ⚍źᗕḰᤶᜬ߾ẝϸ߱ྟ࣪ẋ࣏ˈབ3-3᠔߾DŽᠽሩboot-upՈźᗕ8᪡᪡źᗕПⒸ↨᳔ᇣ࣪boot-upњϔѯźᗕDŽ3-3 CANopen᳔ᇣ࣪boot-upᅆ⚍źᗕḰᤶ⊼ᛣ˖z 3-3ЁᣀোݙՈᄫ↡ᜬ߾໘ѢϡৠźᗕὧѯỞᩳᇍᬥৃҹՓϬDŽa. NMT ˈb. Node Guard ˈc. SDO ˈd. Emergency ˈe. PDO ˈf. Boot-upz źᗕḰࢿ˄1ˉ5ϵNMT᳡ࡵথ᰻˅ˈNMTੑҸᄫ˄ᣀোЁ˅˖1˖ Start_Remote_node (0x01)2˖Stop_Remote_Node (0x02)3˖ Enter_Pre-Operational_State (0x80) 4˖ Reset_Node (0x81) 5˖Reset_Communication (0x82)6˖᪂߱ྟ࣪ᴳˈႮࡼẟܹPre_Operational źᗕˈথễBoot-up ⍜ᙃӏԩᯊNMT ᳡ࡵ῁ৃՓ᠔້᳝ᾬߚᅆ⚍ẟܹϡৠՈᎹźᗕDŽNMT ᳡ࡵՈCAN ᭛ϵCAN ༈(COB-ID=0)ϸᄫᅆ᭄ඈ៤˗ৰϔϾᄫᅆᜬ߾᪻∖Ո᳡ࡵିൟ(‘NMT command specifier’)ˈৰѠϾᄫᅆᰃᅆ⚍ID ˈ້0˄ℸᯊᇏഔ᠔᳝ᅆ⚍˅DŽҙᬃᣕ᳔ᇣ࣪boot-up Ո᪂ি᳔ᇣ࿁᪂DŽ᳔ᇣ࿁᪂᪂߱ྟ࣪ᴳৢႮࡼẟܹ8᪡l źᗕDŽẝϾźᗕˈৃҹỞẋSDO ẟᜐখ᭄‑าẟᜐCOB-ID ߚ‑DŽ᪂ẟܹޚźᗕњNMT ᳡ࡵᅆ⚍ֱᡸ᳡ࡵ˄བᵰᬃᣕᑊϨ▔⌏Ո᪡˅ˈᇚذℶỞᩳDŽ˄ℸþStopped ÿᰃᦣẴẝϾźᗕՈϔϾདৡᄫ˅3ˊ6 CANopen ⍜ᙃ᪱⊩ඊᅆҹϟᾬߚЁCOB ˉID ՓϬՈᰃCANopen 8ᅮНẢ▊ЁᏆᅮНՈׅᷛᖫ৪DŽ3ˊ6ˊ1 NMT ഫࠊ˄NMT Module Control ˅া᳝ᅆ⚍࿁ӴễNMT Module Control ᭛DŽ᠔᳝Ң᪂ᖙ/ᬃᣕNMT ഫࠊ᳡ࡵDŽNMT Module Control ⍜ᙃNMT ⍜ᙃḐᓣབϟ˖NMT-Master Î NMT-Slave(s)COB-IDByte 0Byte 10x000 CS Node-IDNode-ID=0ˈ߭᠔᳝ՈNMT Ң᪂ᝯᇏഔDŽCS ᰃੑҸᄫˈৃҹপབϟؐ˖ੑҸᄫ NMT ᳡ࡵ1 Start Remote Node2 Stop Remote Node Enter Pre-operational State129 Reset Node130 Reset Communication3ˊ6ˊ2 MNT ᅆ⚍ֱᡸ˄NMT Node Guarding ˅NMT-Master ᅆ⚍থễẠ࣏ᏻ˄᮴᭄˅བϟ˖NMT-Master Î NMT-Slave COB-ID 0x700+Node_IDNMT-Slave ᅆ⚍থễབϟ᭛ᑨਘ˖NMT-Master Í NMT-Slave COB-ID Byte00x700 + Node_IDBit 7 : toggle Bit6-0 : źᗕ᭄ᾬߚࣙᣀϔϾᢪথԡ˄bit7˅ˈᢪথԡᖙ/↣ᅆ⚍ֱᡸᑨਘЁѸ᳓าĀ0ā້Ā1āDŽᢪথԡৰϔᅆ⚍ֱᡸ᪻∖ᯊาЎĀ0āDŽԡ0ࠄԡ6˄bits0̚6˅ᜬ߾ᅆ⚍źᗕˈৃЎϟᜬЁՈ᭄ؐDŽNMT-Master ᅆ⚍࿁ᙃϡ◄ᡅᑨਘDŽৢˈ┨128129130 MNT Ởẋᅆ⚍ֱᡸ᳡ࡵˈM Џᅆ⚍ৃҹẔᶹ↣Ͼᅆ⚍Ոᔧࠡźᗕˈᔧẝѯᅆ⚍≵᭄᳝Ӵễᯊẝ᳡ࡵᇸ᳝݊ᛣНDŽ᭛ᑨഫࠊ᳡ᔧValueźᗕ0 Initialising 1 Disconnected * 2 Connecting * 3Preparing *4 Stopped5 Operational 127 Pre-operationalboot-up Ոᅆ⚍ᠡᦤկDŽ⊼ᛣźᗕ0Ңϡᅆ⚍ֱᡸᑨਘЁߎɴˈ້ˈϔϾᅆ⚍ৃᝯ‑าЎѻϣ਼ᳳᗻՈᝯࢴᖗᲷ᭛˄Heartbeat ˅Ո᭛DŽHeartbeat Producer Î Consumer(s)COB-ID Byte 0 0x700 + Node_IDźᗕźᗕৃЎϟᜬՈ᭄ؐ˖źᗕᛣН0 Boot-up 4 Stopped 5 Operational 127 Pre-operationalHeartbeat ᅆ⚍ਃࡼৢᅗՈBoot-up ᭛ᰃ݊ৰϔϾHeartbeat ᭛DŽHeartbeat ⍜᯽້ỞᐌᰃNMT-Master ᅆ⚍ˈᅗЎ↣ϾHeartbeat ᅆ⚍᪂ᅮϔϾ᱉ᯊؐˈᔧ᱉ᯊথϣᯊ₋পּᑨࡼDŽϔϾᅆ⚍ϡ࿁ৠᯊᬃᣕNode Guarding Heartbeat णᩲDŽ3ˊ6ˊ3 NMT Boot-upᅆ⚍থᏗBoot-up ᭛ỞکNMT-Master ᅆ⚍ᅗᏆඓҢinitialising źᗕẟܹpre-operationalNMT-Master Í NMT-SlaveCOB-ID Byte 0 0x700 + Node_ID0 3ˊ6ˊ4 ẋ᭄࣏ᇍᬥ˄PDO ˅ЎϔϾ՟ᄤˈ؛ᅮৰѠϾtransmit-PDO ᇘབϟ˄CANopen ЁϬᇍᬥᄫ௦ᓩ0x1A01ᦣẴ˅˖ᇍᬥ0x1A01 : ৰѠϾTransmit-PDO ᇘᄤ௦ᓩؐᛣН0 22ϾᇍᬥᇘࠄPDO Ё1 0x60000208 ᇍᬥ0x6000ˈᄤ௦ᓩ0x02ˈϵ8ԡඈ៤2 0x64010110 ᇍᬥ0x6401ˈᄤ௦ᓩ0x01ˈϵ16ԡඈ៤ CANopen I/O ഫՈ᪂ᄤणᩲ˄CiA DSP-401˅ᅮНЁˈᇍᬥ0x6000ᄤ௦ᓩ2ᰃᅆ⚍Ոৰ2ඈ8ԡ᭄ᄫₓṗܹˈᇍᬥ0x6401ᄤ௦ᓩ0x01ᰃᅆ⚍Ոৰ1ඈ16ԡᢳₓṗܹDŽẝϾPDO ᭛བᵰᝯথễ(ৃ࿁ϵṗܹᬍবˈᅮᯊ఼Ёᮁ້Ạ࣏᪻∖ᏻᮍᓣᢪথˈPDO ՈӴṗିൟּϔႸˈৃҹᇍᬥ0x1801ᄤ௦ᓩ2Ёᶹᡒ)ˈ߭ϵ3ᄫᅆ᭄ඈ៤ˈḐᓣབϟ˖⊼ᛣ˖ᏺˆোՈźᗕা᳝ᬃᣕᠽሩЎϔϾᅆ⚍ẝϾźᗕᯊᑊϡᑨਘᅆ⚍ֱᡸ᭛DŽH ᔧϔϾ᭛᭛DŽNMT-slave źᗕDŽPDO-producer Î PDO-consumer(s)COB-ID Byte 0Byte 1 Byte 2 0x280+Node_ID8ԡ᭄ₓṗܹ 16ԡᢳₓṗܹ˄Ԣ8ԡ˅16ԡഫₓṗܹ ˄ʌ8ԡ˅Ởẋᬍবᇍᬥ0x1A01ՈݙᆍˈPDO Ոݙᆍৃᝯᬍব˄བᵰᅆ⚍ᬃᣕ˄ৃবPDO ᇘ˅˅DŽ⊼ᛣCANopen Ёᄫᅆখ᭄ᘏᰃܜথễLSB ˄little endian ˅DŽ ϡܕ᩼᱉ẋ8ϾᄫᅆՈ᭄ᇘࠄᶤϔϾPDO ЁDŽCANopen Application Layer and Communication Profile ˄CiA DS 301 V 4.02 ˅ЁᅮНњMPDO(multiplexor PDO)ˈܕ᩼ϔϾPDO ӴṗₓবₓˈỞẋ᭛᭄ᄫᅆЁࣙ⑤ֲՈᅆ⚍ID ǃOD ЁՈ௦ᓩᄤ௦ᓩᴹᅲɴDŽВϾ՟ᄤ˖བᵰ≵᳝ẝϾᴎࠊˈᔧϔϾᅆ⚍᳝64Ͼ16ԡՈᢳỞᯊˈህ◄ᡅ16ϾϡৠՈTransmit-PDOs ᴹӴễ᭄ˈ3ˊ6ˊ5 ᳡ࡵ᭄ᇍᬥ˄SDO ˅SDO Ϭᴹ᪃⒲ϔϾ᪂ՈᇍᬥᄫDŽ᪃⒲້ᝯࢴᅶ᠋ (client)ˈᇍᬥᄫᝯ᪃⒲Ϩᦤկ᠔᪻∖᳡ࡵՈCANopen ᪂߿ࢴ᳡ࡵ఼(server)DŽᅶ᠋ՈCAN ᭛᳡ࡵ఼ՈᑨਘCAN ᭛ᘏᰃࣙ8ᄫᅆ᭄ᛣН˅DŽϔϾᅶ᠋Ո᪻∖ϔᅮ᳝ᴹႮ᳡ࡵ఼ՈᑨਘDŽSDO ᳝2Ӵễᴎࠊ˖z ࡴợӴễ˄Expedited transfer ˅ ˖ ᳔Ӵṗ4ᄫᅆ᭄ z ߚ↉Ӵễ˄Segmented transfer ˅ ˖ Ӵṗ᭄⑃ᑺѢ4ᄫᅆSDO Ոᴀᵘབϟ˖ Client Î Server / Server Î ClientByte 0 Byte 1-2 Byte 3 Byte 4-7 SDOCommand Specifier ᇍᬥ௦ᓩᇍᬥᄤ௦ᓩ** ˄**᳔4ᄫᅆ᭄(expedited transfer)4ᄫᅆᄫᅆᩥ఼᭄˄segmented transfer ˅݇Ѣblock transfer খ᭄)້Client Î Server / Server Î ClientByte 0 Byte 1-70SDO ੑҸᄫ᳔7ᄫᅆ᭄˄segmented transfer ˅SDO ੑҸᄫࣙབϟֵᙃ˖ z ϟṁ/ϞӴ˄Download / upload ˅ z ᪻∖/ᑨਘ˄Request /response ˅z ߚ↉/ࡴợӴễ˄Segmented / expedited transfer ˅ z CAN ᏻ᭄ᄫᅆ⑃ᑺz ϬѢৢන↣Ͼߚ↉ՈѸ᳓⏙►าԡՈᢪথԡ˄toggle bit ˅SDO Ёᅲɴњ5Ͼ᪻∖/ᑨਘणᩲ˖ਃࡼඳϟṁ ˄Initiate Domain Download ˅ˈඳߚ↉ϟṁ˄Download Domain Segment ˅ˈ ਃࡼඳϞӴ ˄Initiate Domain Upload ˅ˈඳߚ↉ϞӴ ˄Upload Domain Segment ˅ ඳӴễЁℶ˄Abort Domain Transfer ˅DŽCANopen ỞᩳणᩲՈ᳔ᮄČᴀЁˈᓩܹњϔᮄՈSDO Ӵễᴎࠊ˖ഫӴễ˄Block transfer ˅˖ᔧӴễ᭄⑃ᑺѢ4ᄫᅆᯊˈϾߚ↉াϵ1Ͼܲᩨ᭛ᑨਘ˄བᵰᰃϟṁˈ߭ϵ᳡ࡵ఼ਃࡼӴễˈབᵰᰃϞӴˈ߭ϵᅶ᠋ਃࡼӴễ˅ҹࡴᘏඃ৲ₓDŽּᑨՈणᩲЎ˖ਃࡼഫϟṁ ˄Initiate Block Download ˅ˈഫߚ↉ϟṁ ˄Download Block Segment ˅ˈഫϟṁᴳ˄End Block Download ˅ˈਃࡼഫϞӴ ˄Initiate Block Upload ˅ˈഫߚ↉ϞӴ˄Upload BlockᛣϔϾB ˄ሑϡᰃ᠔᳝Ո᭄ᄫᅆ῁ϔᅮ᳝Segment ˅ ഫϞӴᴳ˄End Block Upload ˅DŽ˅ᰃUpload ˅ᣛᇍᇍᬥᄫẟᜐᪿ᪡DŽ ẝѯणᩲՈSDO ੑҸᄫ˄SDO CAN ᭛ՈৰϔϾᄫᅆ˅᪱⊩ඊᅆϟ☦ᾬߚ᪸ᯢ˖ ˄þˉÿᜬ߾ϡּ݇ˈᑨЎ0˅DŽਃࡼඳϟṁ˄Initiate Domain Download ˅Bit765432 1Client Î 0 0 1 - ne sÍServer 0 1 1 - - - - -᪸ᯢ˖z n ˖ བᵰe=1ˈϨs=1ˈ᳝߭ᬜˈ৺߭Ў0˗ᜬ߾᭄ᾬߚЁ᮴ᛣН᭄Ոᄫᅆ᭄˄ᄫᅆ8ˉnࠄ7᭄᮴ᛣН˅DŽz e ˖ 0 = ℷᐌӴễˈ1 = ࡴợӴễDŽz s ˖ ᰃ৺ᣛᯢ᭄⑃ᑺˈ0 = ᭄⑃ᑺᣛᯢˈ1 = ᭄⑃ᑺᣛᯢDŽ z e = 0ˈ s = 0˖ ϵCiA ֱНDŽz e = 0ˈ s = 1 ˖ ᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈbyte 4ᰃ᭄Ԣԡᾬߚ˄LSB ˅ˈbyte 7ᰃ᭄ʌԡᾬߚ˄MSB ˅DŽz e = 1 ˖ ᭄ᄫᅆЎᇚᡅϟṁ˄download ˅Ո᭄DŽඳߚ↉ϟṁ˄Download Domain Segment ˅Bit765432 10 Client Î 0 0 0 t ncÍServer 0 0 1 t - - - -᪸ᯢ˖z n ˖᮴ᛣНՈ᭄ᄫᅆ᭄DŽབᵰ≵᳝ᣛᯢ↉⑃ᑺˈ߭Ў0DŽ z c ˖ 0 = ᳝ৢනߚ↉◄ᡅdownload ˈ1 = ᳔ৢϔϾ↉DŽz t ˖ ᢪথԡˈৢන↣Ͼߚ↉Ѹ᳓⏙►าԡ˄ৰϔӴễЎ0ˈᬜѢrequest/response ˅DŽਃࡼඳϞӴ˄Initiate Domain Upload ˅Bit765432 1Client Î 0 1 0 - - - - - ÍServer 0 1 0 - ne s ᪸ᯢ˖n ˈe ˈs ˖ ϢਃࡼඳϟṁּৠDŽඳߚ↉ϞӴ˄Upload Domain Segment ˅Bit765432 10 Client Î 0 1 1 t - - - - ÍServer 0 0 0 t nc᪸ᯢ˖n ˈc ˈt ˖ Ϣඳߚ↉ϟṁּৠDŽSDO ᅶ᠋᳡ࡵ఼ỞẋথߎབϟḐᓣՈ᭛ᴹЁℶSDO Ӵễ˖ඳӴễЁℶ˄Abort Domain Transfer ˅Bit7654321C Î/ÍS 1 0 0 - - - - -Download ˅ϟṁ˄D ᰃᣛᇍᇍᬥᄫẟᜐݭ᪡ˈϞӴ˄UඳӴễЁℶ᭛Ёˈ᭄ᄫᅆ01ᜬ߾ᇍᬥ௦ᓩˈᄫᅆ2ᜬ߾ᄤ௦ᓩˈᄫᅆ4ࠄ7ࣙ32ԡЁℶۅˈᦣẴЁℶ᭛Ӵễॳˈᢅᜬ3-4᠔߾DŽᜬ3-4 ඳӴễЁℶSDO˖16ẟࠊЁℶҷۅᜬ˄ᄫᅆ4ࠄ7˅Ёℶҷۅҷۅࡳ࿁ᦣẴ0503 0000 ᢪথԡ≵᳝Ѹ᳓ᬍব0504 0000 SDOणᩲ᱉ᯊ0504 0001 ☢⊩کՈClient/Server ੑҸᄫ0504 0002 ᮴ᬜՈഫᇣ˄ҙBlock Transferᓣ˅0504 0003 ᮴ᬜՈᑣো˄ҙBlock Transferᓣ˅0503 0004 CRC⏝᪳˄ҙBlock Transferᓣ˅0503 0005 ݙᄬ⑶ߎ0601 0000 ᇍᬥϡᬃᣕ᪃⒲0601 0001 ᪙ᪿাݭᇍᬥ0601 0002 ᪙ݭাᪿᇍᬥ0602 0000 ᇍᬥᄫЁᇍᬥϡᄬ0604 0041 ᇍᬥϡ࿁ᇘࠄPDO0604 0042 ᇘՈᇍᬥՈ᭄ֲ⑃ᑺ᱉ߎPDO⑃ᑺ0604 0043 ϔჰᗻখ᭄ϡݐᆍ0604 0047 ϔჰᗻ᪂ݙᾬϡݐᆍ0606 0000 ܰӊ⏝᪳ᇐႸᇍᬥ᪃⒲༅ᯩ0606 0010 ᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺϡऍ‑0606 0012 ᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺ0606 0013 ᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺڱ0609 0011 ᄤ௦ᓩϡᄬ0609 0030 ᱉ߎখ᭄Ոؐᇇೈ(ݭ᪃⒲ᯊ)0609 0031 ݭܹখ᭄᭄ؐ0609 0032 ݭܹখ᭄᭄ؐᇣ0609 0036 ᳔ؐᇣѢ᳔ᇣؐ0800 0000 ϔჰᗻ⏝᪳0800 0020 ᭄ϡ࿁ӴễֱᄬࠄᑨϬ0800 0021 ϵѢᴀഄࠊᇐႸ᭄ϡ࿁ӴễֱᄬࠄᑨϬ0800 0022 ϵѢᔧࠡ᪂źᗕᇐႸ᭄ϡ࿁ӴễֱᄬࠄᑨϬ0800 0023ᇍᬥᄫࡼᗕѻϣ⏝᪳ᇍᬥᄫϡᄬ˄՟བˈỞẋ᭛ӊϣ៤ᇍᬥᄫˈԚϵѢ᭛ӊᤳണᇐႸ⏝᪳ѻϣ˅ਃࡼഫϟṁ˄Initiate Block Download˅Bit 7 6 5 4 3 2 1 0 ClientÎ 1 1 0 - - cc s 0 ÍServer 1 0 1 - - sc - 0 ᪸ᯢ˖z cc ˖ᅶ᠋᭄ᰃ৺ՓϬCRC᷵ɀˈ0 = noˈ1 = yesDŽz sc ˖᳡ࡵ఼᭄ᰃ৺ՓϬCRC᷵ɀˈ0 = noˈ1 = yesDŽz s ˖ᰃ৺ᣛᯢ᭄▊⑃ᑺˈ0=᭄▊⑃ᑺᣛᯢˈ1˙᭄▊⑃ᑺᣛᯢDŽz s=0 ˖ϵCiAֱНDŽz s=1 ˖᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽz ᳡ࡵ఼ᄫᅆ4ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0<blksize<128DŽഫߚ↉ϟṁ˄Download Block Segment˅Bit 7 6 5 4 3 2 1 0ClientÎ c 0ClientÎ c 1…etc… c seqnoÍServer 1 0 1 - - - 1 0 ᪸ᯢ˖z c ˖ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽz seqno ˖ߚ↉োˈ0<seqno<128DŽz ᅶ᠋᭄ᄫᅆ˖↣ߚ↉Ⴗࣙᣀ7ᄫᅆ᭄ᝯdownloadDŽz ᳡ࡵ఼ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉ℷܲᬊˈ᠔᳝↉ᖙ/ₑӴDŽz ᳡ࡵ఼ᄫᅆ2˖ࣙblksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔഫϟṁˈ0<blksize<128DŽഫϟṁᴳ˄End Block Download˅Bit 7 6 5 4 3 2 1 0ClientÎ 1 1 0 n - 1 ÍServer 1 0 1 - - - - 1 ᪸ᯢ˖z n ˖ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄Ոᄫᅆ᭄DŽz ᅶ᠋᭄bytes1+2 ЎᭈϾ᭄▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϟṁ᭛Ё ccscৠᯊЎ1ᯊCRCᠡ᳝ᬜDŽਃࡼഫϞӴ˄Initiate Block Upload˅Bit 7 6 5 4 3 2 1 0ClientÎ 1 0 1 - - cc 0 0 ÍServer 1 1 0 - - sc 0 ClientÎ 1 0 1 - - - 1 1 ᪸ᯢ˖z cc ˖ᅶ᠋᭄ᰃ৺ՓϬCRC᷵ɀˈ 0˙no ˈ1=yesDŽz sc ˖᳡ࡵ఼᭄ᰃ৺ՓϬCRC᷵ɀˈ 0=noˈ 1=yesDŽz s ˖ᰃ৺ᣛᯢ᭄▊⑃ᑺˈ0=᭄▊⑃ᑺᣛᯢˈ1˙᭄▊⑃ᑺᣛᯢDŽz s=0˖ϵCiAֱНDŽz s=1˖᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽz ᅶ᠋᭄ᄫᅆ4˖ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0<blksize<128DŽz ᅶ᠋᭄ᄫᅆ5˖ᜬ߾णᩲḰᤶᄫ˄pst˖Protocol Switch Threshold˅ˈϬѢᰃ৺ܕ᩼ᬍবSDO Ӵễणᩲˈ0=ϡܕ᩼ᬍবˈ1=ܕ᩼ᬍব˄བᵰᡅuploadՈ᭄ᄫᅆ᭄ᇥѢѢpstˈServerৃҹỞẋInitiate Domain UploadणᩲᑨਘᬍবࠄUpload Domainणᩲ˅DŽഫߚ↉ϞӴ˄Upload Block Segment˅Bit 7 6 5 4 3 2 1 0ÍServer c 0ÍServer c 1..etc… c seqnoClientÎ 1 1 0 - - - 1 0 ᪸ᯢ˖z c ˖ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽz seqno ˖ߚ↉োˈ0<seqno<128DŽz ᳡ࡵ఼᭄ᄫᅆ˖↣ߚ↉Ⴗࣙᣀ7ᄫᅆ᭄ᝯdownloadDŽz ᅶ᠋ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉ℷܲᬊˈ᠔᳝↉ᖙ/ₑӴDŽz ᅶ᠋ᄫᅆ2˖ࣙblksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔഫϟṁˈ0<blksize<128DŽഫϞӴᴳ˄End Block Upload˅Bit 7 6 5 4 3 2 1 0ÍServer 1 1 0 n - 1 ClientÎ 1 0 1 - - - - 1 ᪸ᯢ˖z n ˖ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄Ոᄫᅆ᭄DŽz ᳡ࡵ఼᭄bytes1+2 ЎᭈϾ᭄▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϞӴ᭛Ё ccscৠᯊЎ1ᯊCRCᠡ᳝ᬜDŽϟ☦ඝߎϾ՟ᄤ᪸ᯢབԩՓϬSDOᴹ᪃⒲ϔϾᅆ⚍ՈᇍᬥᄫDŽՓϬϟ☦ՈSDO⍜ᙃˈؐ0x3FEᇚݭࠄᅆ⚍IDЎ2ՈᇍᬥᄫЁ௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥЁএˈՓϬਃࡼඳϟṁणᩲˈࡴợӴṗ˄2ᄫᅆ᭄˅˖Client Î Server (ᅆ⚍#2)COB-IDByte0 1 2 3 4 5 6-7602 2B 01 18 03 FE 03 - Client Í Server(ᅆ⚍ʿ2)582 60 01 18 03 - - - ՓϬϟ☦ՈSDO⍜ᙃˈৠḋՈᇍᬥᄫЁ௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥᇚᝯᪿߎˈՓϬਃࡼඳϞӴणᩲˈ᳡ࡵ఼ՓϬࡴợӴṗᮍᓣᑨਘ˄2ᄫᅆ᭄˅˖Client Î Server(ᅆ⚍ʿ2)COB-IDByte0 1 2 3 4 5 6-7602 40 01 18 03 - - - Client Í Server(ᅆ⚍ʿ2)582 4B 01 18 03 FE 03 - 3ˊ6ˊ6 ᑨᗹᣛ߾ᇍᬥ(Emergency Object)ᑨᗹᣛ߾᭛ϵ᪂ݙᾬߎɴՈႸੑ⏝᪳ᢪথˈϵּ݇ᑨϬ᪂݊ᅗ᪂DŽỆϬѢЁᮁିൟՈ⏝᪳ᨪֵোDŽ8ᄫᅆඈ៤ˈḐᓣབϟ˖ sender Î receiver(s)COB-ID Byte 0-1 Byte 2 Byte 3-70x080+Node_IDᑨᗹ⏝᪳ҷۅ⏝᪳ᆘᄬ఼ (ᇍᬥ0x1001)ࠊỤଚĽᅮՈ⏝᪳ऎඳ16ẟࠊՈᑨᗹ⏝᪳ҷۅབϟᜬ3-5᠔߾DŽᑨᗹ⏝᪳ҷۅЁþxx ÿᾬߚϵּᑨՈ᪂ᄤणᩲᅮНDŽᜬ3-5 ᑨᗹ⏝᪳ҷۅ˄16ẟࠊ˅ᑨᗹ⏝᪳ҷۅҷۅࡳ࿁ᦣẴ00xxError Reset No Error10xx Generic Error 20xx Current 21xx Current ˈdevice input side 22xx Current ˈinside the device 23xxCurrent ˈdevice output side30xx V oltage31xx Mains voltage 32xxV oltage inside the device33xx Output voltage 40xx Temperature41xx Ambient temperature 42xx Device tempearture 50xx Device hardware 60xx Device software61xx Internal software 62xx User software 63xx Data set 70xx Additional modules 80xx Monitoring81xx communication 8110 CAN overrun 8120 Error Passive 8130 Life Guard Error Heartbeat Error 8140Recovered from Bus-Off82xx Protocol Error 8210PDO no processed Due to length error8220 Length exceedd 90xx External error F0xx Additional functions FFxx Device specificᏆ᳔ʌӬܜ൫থễࠄϔϾᑨᗹ᭛ϵ⏝᪳ᆘᄬ఼(Error Register)᪂Ոᇍᬥᄫ˄௦ᓩ0x1001˅Ёˈᜬ3-6᪸ᯢњ⏝᪳ᆘᄬ఼ՈԡᅮНDŽ᪂ৃҹᇚݙᾬ⏝᪳ᇘࠄẝϾźᗕᄫᅆЁˈᑊৃҹᖿợᶹᔧࠡ⏝᪳DŽᜬ3-6 8ԡ⏝᪳ᆘᄬ఼ԡᅮНBit⏝᪳ିൟ0 Generic1 Current2 V oltage3 Temperature4 Communication5 Device profile specific6 Reserved(=0)7 ManufacturerspecificࠊỤଚĽᅮ⏝᪳ऎඳৃ࿁ࣙϢ᪂ּ݇Ո݊ᅗՈ⏝ֵ᪳ᙃDŽ4ǃᘏѢCANᘏඃՈCANopenตචỞᩳ᳝ҹϟĽ⚍˖z ՓϬᇍᬥᄫ˄OD˖Object Dictionary˅ᇍ᪂ࡳ࿁ẟᜐᷛޚ࣪ՈᦣẴDŽz ՓϬASCII᭛ḷ˖Ϲᄤ᭄᭛ḷ˄EDS˅᪂‑า᭛ӊ˄DCF˅ᇍ᪂ঞ݊‑าẟᜐᷛޚ࣪ՈᦣẴDŽz CANopenตචՈ᭄ѸᤶிඣˊѢCALЁCMS᳡ࡵDŽz ிඣboot-upᅆ⚍ֱᡸ˄Node Guarding˅ՈᷛޚѢCALЁNMT᳡ࡵDŽz ᅮНњᭈϾிඣՈৠℹ᪡DŽz ᅮНњᅆ⚍ĽᅮՈᑨᗹ᭛DŽЎϢCANopenỞᩳणᩲּᑨՈ᪂ᄤणᩲֱᣕϔႸˈҹՓࠊỤଚՈѻક࿁ϬѢӏԩCANopenตචˈҹϟ3ሖՈݐᆍᗻᡅ∖◄ᡅ⒵ᱷ˄ᇍ᮹֎⑃Ո᪂ݐᆍᗻՈᡅ∖˅˖z ϔႸᗻ˖᪂ẢࠄCANopenตචৢϡ࿁ᕅડ݊Ҫ᪂ՈỞᩳ˖ᑨϬሖՈϔႸᗻDŽz ѦϬᗻ˖᪂࿁ৠตචϞՈ݊ᅗᅆ⚍Ѹᤶ᭄˖ỞᩳणᩲՈϔႸᗻDŽz Ѧᤶᗻ˖᪂࿁ҷ᳓ϔϾৠି᪂˖᪂ᄤणᩲՈϔႸᗻDŽϔϾCANopen᪂Ⴗᇥᑨ᪩᳝˄᳔ᇣ࿁᪂˅˖z ϔϾᅆ⚍IDˈz ϔϾᇍᬥᄫ˄ݙᆍϵ᪂ࡳ࿁އᅮ˅ˈz ϔϾSDOˈ࿁᪃⒲ᇍᬥᄫЁᖙ◄Ոᇍᬥ˄াᪿ˅ˈz ᬃᣕϟ߫NMTҢ᪂᳡ࡵ˖Reset_Nodeˈ Enter_Preoperational_Stateˈ Start_Remote_NodeˈStop_Remote_Nodeˈ Reset_Communicationˈz ׅՈᷛ৪ߚ‑DŽᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ5ǃ᪸ᯢᴀ᭛তՈᾬߚݙᆍ᪕ႮҟඑCANopenणᩲՈϔઋ᭛তljCANopen˖high-level protocol for CAN-busNJˈ᪩᭛ত↨ṇܼ☦ഄҟඑњCANopenणᩲDŽCANopenणᩲᰃѢCAN-busՈϔʌሖणᩲˈ⌆ᑨϬṇЎᑓ⊯ˈỆড়ѢϹẃϹ⇨ǃᱎₒ≑Ḫǃხ⍋ϹᄤǃएћϹ఼ǃᎹ࣏ᴎẄǃ⎅ᲳᴎḪ:ඳˈϨणᩲ⍌ᇍᜐϮᑨϬˈᅲɴ↨ṇ⋕DŽ᪕ℸ᭛ՈֲՈѢϔѯĽᅮᜐϮՈCAN-busϬ᠋ᦤկ݇ѢCANopenणᩲՈ᳝ϬֵᙃˈᏠᳯ࿁ᇍẝѯᜐϮՈCANopenणᩲѻક᪂ᩥ᰻ϔᅮՈᣛᇐϬˈҢ໐Փ៥ՈCAN-busᑨϬঞᮽϢ┉ḬDŽॳ᭛ᴹႮሻ݄NIKHEF݀ৌตঝˈ້Ў˖H. BoterenbroodDŽ19。