CANopen णᩲҟඑ
⌕ᜐ⌆ՈCAN-busʌሖणᩲ
1
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
ֲᔩ
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
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
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णᩲПⒸՈ݇ிབϟ᠔߾˖
CiA DSP-401ApplicationLayer CiA DSP-404 CiA DSP-xxxCommunication Profile CiA DS-301Data LinkLayerChipCAN 2.0AISO 11898Physical LayerCable
1.1 CANǃCANopenᷛޚOSIตචൟЁՈԡาḚ
1
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
2ǃCAL णᩲ
CAL˄CAN Application Layer˅णᩲᰃֲࠡѢCANՈʌሖỞᩳणᩲЁՈϔˈ᳔ᮽϵPhilipsएћ᪂ᾬ⒬ࠊᅮDŽɴCALϵưএՈCANϬ᠋ࠊỤଚ▊ಶCiA˄CAN in Automation˅णӮᯣᯧˊǃথሩᑓDŽ
CALᦤկњ4ᑨϬሖ᳡ࡵࡳ࿁˖ zCMS (CAN-based Message Specification)
CMSᦤկњϔϾᓔᬒՈǃ☦ᇍᬥՈɳ๗ˈϬѢᅲɴϬ᠋ՈᑨϬDŽCMSᦤկѢবₓǃџӊǃඳିൟՈᇍᬥˈҹ᪂ᩥᢈᅮϔϾ᪂˄ᅆ⚍˅Ոࡳ࿁བԩᝯ᪃⒲˄՟བˈབԩϞṁϟṁ᱉ẋ8ᄫᅆՈϔඈ᭄˄ඳ˅ˈᑊϨ᳝ඌℶӴṗՈࡳ࿁˅DŽ
CMSҢMMS (Manufacturing Message Specification)ණᡓ໐ᴹDŽMMSᰃOSIЎᎹϮ᪂ՈẠ࣏ࠊ֕໐ࠊᅮՈᑨϬሖᢈᇇDŽ zNMT (Network ManagemenT)
ᦤկตචˊ˄བ߱ྟ࣪ǃਃࡼذℶᅆ⚍ˈպ⌟༅ᬜᅆ⚍˅᳡ࡵDŽẝ᳡ࡵᰃ₋ϬЏҢỞᩳᓣ˄᠔ҹা᳝ϔϾNMTЏᅆ⚍˅ᴹᅲɴՈDŽ zDBT (DistriBuTor)
ᦤկࡼᗕߚ‑CAN ID˄ℷᓣৡࢴЎCOB-IDˈCommunication Object Identifier˅᳡ࡵDŽẝ᳡ࡵᰃ₋ϬЏҢỞᩳᓣ˄᠔ҹা᳝ϔϾDBTЏᅆ⚍˅ᴹᅲɴՈDŽ zLMT (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 1 - 220 221 - 440 441 - 660 661 - 880 881 - 1100 1101 - 1320 1321 - 1540 1541 - 1760 1761 - 2015 2016 - 2031
⊼ᛣẝᰃCAN2.0Aᷛޚˈ11ԡIDᇇೈ[0ˈ2047]ˈϵѢग़ॳ└ࠊ[0ˈ2031]DŽབᵰՓϬCAN2.0Bᷛޚˈ29ԡIDᑊϡᬍবẝϾᦣẴ˗ᜬЁՈ11ԡᇘࠄ29ԡCOB-IDЁՈ᳔ʌ11ԡˈҹႷѢᜬЁՈCOB-IDᇇೈবᕫ᩼DŽ
᳡ࡵᇍᬥ NMT ਃࡼ/ذℶ᳡ࡵ CMSᇍᬥӬܜ൫0 CMSᇍᬥӬܜ൫1 CMSᇍᬥӬܜ൫2 CMSᇍᬥӬܜ൫3 CMSᇍᬥӬܜ൫4 CMSᇍᬥӬܜ൫5 CMSᇍᬥӬܜ൫6 CMSᇍᬥӬܜ൫7 NMT ᅆ⚍ֱᡸ NMTˈLMTˈDBT᳡ࡵ
2
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
3ǃCANopen
CALᦤկњ᠔᳝Ոตචˊ᳡ࡵ᭛ӴễणᩲˈԚᑊ≵᳝ᅮН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 Not used
0001 - 001F 0020 - 003F 0040 - 005F 0060 - 007F 0080 - 009F 00A0 - 0FFF 1000 - 1FFF 2000 - 5FFF 6000 - 9FFF A000 - FFFF
CANopenตචЁ↣Ͼᅆ⚍῁᳝ϔϾᇍᬥᄫ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ϡ
☝ᗕ᭄ିൟ ˄ᷛޚ᭄ିൟˈབBooleanˈInteger 16˅ ᴖ᭄ିൟ
˄8ᅮНϵऩିൟඈড়៤ՈᵘབPDOCommParˈSDOParameter˅ ࠊỤଚᢈᅮՈᴖ᭄ିൟ ᪂ᄤणᩲᢈᅮՈ☝ᗕ᭄ିൟ ᪂ᄤणᩲᢈᅮՈᴖ᭄ିൟ Reserved
Ởᩳᄤणᩲऎඳ
(བ᪂ିൟˈ⏝᪳ᆘᄬ఼ˈᬃᣕՈPDO᭄ₓ) ࠊỤଚĽᅮᄤणᩲऎඳ ᷛޚՈ᪂ᄤणᩲऎඳ
(՟བĀDSP-401 I/O ഫ᪂ᄤणᩲā˖Read State 8 Input Lines) Reserved
ᇍᬥ
3
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com ৠՈ᪂ᄤणᩲˈᑊ᳝ℷথሩ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ˈNMTDBT᳡ࡵᾬߚDŽẝѯ᳡ࡵ῁ᰃѢЏҢỞᩳᓣ˖
CANตචЁˈা࿁᳝ϔϾLMTˈNMTDBTЏᅆ⚍ҹঞϔϾϾҢᅆ⚍DŽ
2ˊ ᳡ࡵ᭄ᇍᬥSDO(Service Data Object)
zỞẋՓϬ௦ᓩᄤ௦ᓩ˄CAN᭛ՈࠡϾᄫᅆ˅ˈSDOՓᅶ᠋ᴎ࿁᪃⒲᪂˄᳡ࡵ఼˅
ᇍᬥᄫЁՈ-˄ᇍᬥ˅DŽ
zSDOỞẋ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Ž
zPDOỞᩳ≵᳝णᩲᢈᅮDŽPDO᭄ݙᆍাϵᅗՈCAN IDᅮНˈ؛ᅮϣѻ້⍜᯽້کẝϾ
PDOՈ᭄ݙᆍDŽ
z↣ϾPDOᇍᬥᄫЁϬ2ϾᇍᬥᦣẴ˖
PDOỞᩳখ᭄˖ࣙાϾCOB-IDᇚᝯPDOՓϬˈӴṗିൟˈࡅℶᯊⒸᅮᯊ఼਼ᳳDŽ PDOᇘখ᭄˖ࣙϔϾᇍᬥᄫЁᇍᬥՈ߫ᜬˈẝѯᇍᬥᇘࠄPDOₐˈࣙᣀᅗӀՈ᭄
⑃ᑺ˄in bits˅DŽϣѻ້⍜᯽້ᖙ/کẝϾᇘˈҹᢧ₎PDOݙᆍDŽ
zPDO⍜ᙃՈݙᆍᰃ8ᅮНՈ˄້ตචਃࡼᯊ‑าՈ˅˖
ᇘᑨϬᇍᬥࠄPDOЁᰃ᪂ᇍᬥᄫЁᦣẴՈDŽབᵰ᪂˄ϣѻ້⍜᯽້˅ᬃᣕৃবPDOᇘˈὧМՓϬSDO᭛ৃҹ‑าPDOᇘখ᭄DŽ zPDOৃҹ᳝Ӵễᮍᓣ˖
4
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
ৠℹ˄Ởẋᬊ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) SYNC
RTR
Event
PDOӴṗ
0 B - B ৠℹˈ☢ᕾɳ 1-240 O - - ৠℹˈᕾɳ 241-251 - - - Reserved
252 B B - ৠℹˈRTRПৢ 253 - O - ᓖℹˈRTRПৢ 254 - O O ᓖℹˈࠊỤଚĽᅮџӊ 255 - O O ᓖℹˈ᪂ᄤणᩲĽᅮџӊ ᪸ᯢ˖
zSYNC –ᬊࠄSYNC-objectDŽ zRTRˉᬊࠄẠ࣏ᏻDŽ
zEvent –՟བ᭄ؐᬍব້ᅮᯊ఼ЁᮁDŽ
zӴṗିൟЎ˖1ࠄ240ᯊˈ᪩᭄ᄫҷᜬϸϾPDOПⒸՈSYNCᇍᬥՈ᭄ֲ˅DŽ
zϔϾPDOৃҹᣛᅮϔϾϔϾࡅℶᯊⒸˈेᅮНϸϾẢනPDOӴṗՈ᳔ᇣⒸ╘ᯊⒸˈὃܡϵѢʌӬ
ܜ൫ֵᙃՈ᭄ₓˈྟඌऴᘏඃˈ໐Փ݊ᅗӬܜ൫ṇԢՈ᭄᮴ঢѝᘏඃՈ⒲LDŽࡅℶऩԡ100usDŽ ᯊⒸϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡϾџӊᅮᯊ਼ᳳˈᔧ᱉ẋᅮᯊᯊⒸৢˈϔϾPDOӴṗৃҹᝯᢪথ˄ϡ◄zϔϾPDOৃҹᣛᅮϔϾџӊᅮᯊ਼ऩԡ1msDŽ ᡅᢪথԡ˅DŽџӊᅮᯊ਼ᳳϵ16ԡ᮴৪োᭈ᭄ᅮНˈऩԡ
zPDOỞẋCALЁᄬټџӊିൟՈCMSᇍᬥᅲɴDŽPDO᭄Ӵễ≵᳝Ϟሖणᩲˈ໐ϨPDO
᭛≵᳝ܲᩨᩨ˄ϔϾPDO◄ᡅϔϾCAN-ID˅DŽ↣ϾPDO᭛Ӵễ᳔8Ͼᄫᅆ˄64ԡ˅᭄DŽ
4ˊ 8ᅮН᭛້Ľ⅞ࡳ࿁ᇍᬥ
zৠℹ˄SYNC˅
ตචᇇೈݙৠℹ˄ᇸ݊ȥࡼᑨϬЁ˅˖ᭈϾตචᇇೈݙᔧࠡṗܹؐޚৠᯊֱᄬˈ╓ৢ
Ӵễ˄བᵰ◄ᡅ˅ˈḍࠡϔϾSYNCৢᬊࠄՈ᭛ᮄṗߎؐDŽ
ЏҢᓣ˖SYNCЏᅆ⚍ᅮᯊথễSYNCᇍᬥˈSYNCҢᅆ⚍ᬊࠄৢৠℹᠻᜐӏࡵDŽ SYNC᭛ӴễৢˈඝᅮՈᯊⒸज़ষݙӴễϔϾৠℹPDODŽ ϬCALЁᴀবₓିൟՈCMSᇍᬥᅲɴDŽ
CANopenᓎᩲϬϔϾ᳔ʌӬܜ൫ՈCOB-IDҹֱ᪅ৠℹֵোℷᐌӴễDŽSYNC᭛ৃҹϡ
Ӵễ᭄ҹՓ᭛ሑৃ࿁ڱDŽ
zᯊⒸᷛᩴᇍᬥ˄Time Stamp˅
ЎᑨϬ᪂ᦤկ݀݅ՈᯊⒸᏻখDŽ ϬCALЁᄬټџӊିൟՈCMSᇍᬥᅲɴDŽ
5
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
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Ž
zBoot-UP
ЏҢỞᩳᓣ
NMTҢᅆ⚍ỞẋথễẝϾ᭛ˈNMTЏᅆ⚍᪸ᯢ᪩ᅆ⚍Ꮖඓϵ߱ྟ࣪źᗕẟܹ8᪡
źᗕDŽ
3-1 CANopen ᪂
Ϟ☦ᦤࠄՈỞᩳᇍᬥିൟЁ᳝ѠϾᇍᬥϬѢ᭄ӴṗDŽᅗӀ₋ϬѠϡৠՈ᭄Ӵṗᴎࠊᅲɴ˖ zSDOϬᴹ᪂ПⒸӴṗՈԢӬܜ൫᭄ˈൟՈᰃϬᴹ‑าCANopenตචϞՈ᪂DŽ zPDOϬᴹӴṗ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Ž
6
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
3-2 8ᅮНẢ▊ID
Node-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)IDDŽгᬃᣕϡ◄ܲᩨՈNMT-Module-Control᳡ࡵˈSYNCTime StampᇍᬥՈᑓ᪁DŽ
ׅIDߚ‑ᜬབᜬ3-3᠔߾DŽ
ᜬḐ 3-3 CANopen8ᅮНЏ/ҢẢ▊CANᷛ৪ߚ‑ᜬ
CANopen8ᅮНЏ/ҢẢ▊ՈᑓՈᑓ᪁ᇍᬥ
ᇍᬥ
NMT Module Control TIME SSTAMP
ࡳ࿁ۅ ˄ID-bits 10-7˅
0000 0010
CANopenЏ/ҢẢ▊ՈᇍՈᇍᇍᬥ ࡳ࿁ۅ
ᇍᬥ ௫ᗹ PDO1(থễ) PDO1(ᬊ) PDO2(থễ) PDO2(ᬊ) PDO3(থễ) PDO3(ᬊ) PDO4(থễ) PDO4(ᬊ) SDO(থễ/᳡ࡵ఼) SDO(ᬊ/ᅶ᠋) NMT Error Control ⊼ᛣ˖
zPDO/SDO থễ/ᬊᰃϵ˄slave˅CANᅆ⚍ᮍᢆᆳՈDŽ
ᣀᅆ⚍ֱᡸ˄Node GuardingNH˅Boot-upणᩲDŽ zNMT ⏝᪳ࠊࣙࠊࣙᣀᅆ⚍˅ˈᖗᲷ᭛˄Heartbeat˅ࡳ࿁ۅ ˄ID-bits 10-7˅
0001 081H-0FFH 1024Hˈ1015H 0011 181H-1FFH 0100 201H-27FH 0101 281H-2FFH 0110 301H-37FH 0111 381H-3FFH 1000 401H-47FH 1001 481H-4FFH 1010 501H-57FH 1011 581H-5FFH 1100 601H-67FH 1110
701H-77FH
1800H 1400H 1801H 1401H 1802H 1402H 1803H 1403H 1200H 1200H COB-ID
Ởᩳখ᭄ODЁՈ௦ᓩ
COB-ID 000H 100H
Ởᩳখ᭄ODЁՈ௦ᓩ
-
SYNC 0001 080H 1005Hˈ1006Hˈ1007H
1012Hˈ1013H
1016H-1017H
7
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
3ˊ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ՓϬCALDBT᳡ࡵ˖ᅆ⚍Ңᅆ⚍᳔߱ϵᅗӀՈ‑าIDᣛࢴDŽᅆ⚍IDৃҹϵ᪂ϞՈᢼۅ
ᓔ݇‑าˈՓϬCALLMT᳡ࡵẟᜐ‑าDŽᔧตච߱ྟ࣪ᅠ↩ˈᑊϨਃࡼৢˈЏᅆ⚍ŊܜỞẋ”Connect_Remote_Node”᭛˄ᰃϔϾCALNMT᳡ࡵ˅↣ϾẢՈҢ᪂ᓎএϔϾᇍ᪡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ᅆ⚍źᗕḰᤶ
⊼ᛣ˖
z3-3ЁᣀোݙՈᄫ↡ᜬ߾໘ѢϡৠźᗕὧѯỞᩳᇍᬥৃҹՓϬDŽ
a. NMT ˈ b. Node Guard ˈ c. SDO ˈ d. Emergency ˈ e. PDO ˈ f. Boot-up zźᗕḰࢿ˄1ˉ5ϵNMT᳡ࡵথ᰻˅ˈNMTੑҸᄫ˄ᣀোЁ˅˖ 1˖ Start_Remote_node (0x01)
8
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
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ՓϬՈᰃCANopen8ᅮНẢ▊ЁᏆᅮНՈׅᷛᖫ৪DŽ
3ˊ6ˊ1 NMTഫࠊ˄NMT Module Control˅
া᳝NMT-Masterᅆ⚍࿁ᅆ⚍࿁ӴễNMT Module Control᭛DŽ᠔᳝Ң᪂ᖙ/ᬃᣕNMTഫࠊ᳡ࡵDŽഫࠊ᳡NMT Module Control⍜ᙃᙃϡ◄ᡅᑨਘDŽNMT⍜ᙃḐᓣབϟ˖
NMT-Master Î NMT-Slave(s)
COB-ID
Byte 0
Byte 1
0x000 CS Node-ID ᔧNode-ID=0ˈ߭᠔᳝ՈNMTҢ᪂ᝯᇏഔDŽCSᰃੑҸᄫˈৃҹপབϟؐ˖
ੑҸᄫ 1 2 128 NMT᳡ࡵ
Start Remote Node Stop Remote Node Enter Pre-operational State
129 Reset 129Node
130 Reset 130 Communication 3ˊ6ˊ2 MNTᅆ⚍ֱᡸ˄NMT Node Guarding˅
Ởẋᅆ⚍ֱᡸ᳡ࡵˈMMNTЏᅆ⚍ৃҹẔᶹ↣Ͼᅆ⚍Ոᔧࠡźᗕˈᔧẝѯᅆ⚍≵᭄᳝Ӵễᯊẝ᳡ࡵᇸ᳝݊ᛣНDŽ NMT-Masterᅆ⚍থễẠ࣏ᏻ˄᮴᭄˅བϟ˖
NMT-Master Î NMT-Slave COB-ID 0x700+Node_ID
NMT-Slaveᅆ⚍থễབϟ᭛ᑨ᭛ᑨਘ˖
NMT-Master Í NMT-Slave COB-ID 0x700 + Node_ID
Byte0
Bit 7 : toggle Bit6-0 : źᗕ
᭄ᾬߚࣙᣀϔϾᢪথԡ˄bit7˅ˈᢪথԡᖙ/↣ᅆ⚍ֱᡸᑨਘЁѸ᳓าĀ0ā້Ā1āDŽᢪথԡৰϔᅆ⚍ֱᡸ᪻∖ᯊาЎĀ0āDŽԡ0ࠄԡ6˄bits0̚6˅ᜬ߾ᅆ⚍źᗕˈৃЎϟᜬЁՈ᭄ؐDŽ
9
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
Value
źᗕ
Disconnected * Connecting * Preparing *
0 Initialising 1 2 3
4 Stopped 5 Operational 127 Pre-operational ⊼ᛣ˖ᏺˆোՈźᗕা᳝ᬃᣕᠽሩboot-upՈᅆ⚍ᠡᦤկDŽ⊼ᛣźᗕ0Ңϡᅆ⚍ֱᡸᑨਘЁߎɴˈЎϔϾᅆ⚍ẝϾźᗕᯊᑊϡᑨਘᅆ⚍ֱᡸ᭛DŽ
້ˈϔϾᅆ⚍ৃᝯ‑าЎѻϣ਼ᳳᗻՈᝯࢴᖗᲷ᭛˄Heartbeat˅Ո᭛DŽ
Heartbeat Producer Î Consumer(s)
COB-ID 0x700 + Node_ID
źᗕৃЎϟᜬՈ᭄ؐ˖
źᗕ
ᛣН
0 Boot-up 4 Stopped 5 Operational 127 Pre-operational ᔧϔϾHeartbeatᅆ⚍ਃࡼৢᅗՈBoot-up᭛ᰃ݊ৰϔϾHeartbeat᭛DŽ᭛᭛DŽHeartbeatH⍜᯽້ỞᐌᰃNMT-Masterᅆ⚍ˈᅗЎ↣ϾHeartbeatᅆ⚍᪂ᅮϔϾ᱉ᯊؐˈᔧ᱉ᯊথϣᯊ₋পּᑨࡼDŽ
ϔϾᅆ⚍ϡ࿁ৠᯊᬃᣕNode GuardingHeartbeatणᩲDŽ
3ˊ6ˊ3 NMT Boot-up
NMT-slaveᅆ⚍থᏗBoot-up᭛ỞکNMT-Masterᅆ⚍ᅗᏆඓҢinitialisingźᗕẟܹpre-operationalźᗕDŽ
NMT-Master Í NMT-Slave
COB-ID 0x700 + Node_ID
3ˊ6ˊ4 ẋ᭄࣏ᇍᬥ˄PDO˅
ЎϔϾ՟ᄤˈ؛ᅮৰѠϾtransmit-PDOᇘབϟ˄CANopenЁϬᇍᬥᄫ௦ᓩ0x1A01ᦣẴ˅˖
ᇍᬥ0x1A01 : ৰѠϾTransmit-PDOᇘ
ᄤ௦ᓩ
ؐ
ᛣН
2ϾᇍᬥᇘࠄPDOЁ
0 2 Byte 0 0 Byte 0 źᗕ
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ᄫᅆ᭄ඈ៤ˈḐᓣབϟ˖
10
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com PDO-producer Î PDO-consumer(s)
COB-ID 0x280+Node_ID
Byte 0
Byte 1 ˄Ԣ8ԡ˅
ᛣ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 Î Client
Byte 0 SDO
Command Specifier ້
Client Î Server / Server Î Client
Byte 0 SDO ੑҸᄫ
SDO ੑҸᄫࣙབϟֵᙃ˖ zϟṁ/ϞӴ˄Download / upload˅ z᪻∖/ᑨਘ˄Request /response˅
zߚ↉/ࡴợӴễ˄Segmented / expedited transfer˅ zCANᏻ᭄ᄫᅆ⑃ᑺ
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Ͼܲᩨ᭛ᑨਘ˄བᵰᰃϟBṁˈ߭ϵ᳡ࡵ఼ਃࡼӴễˈབᵰᰃϞӴˈ߭ϵᅶ᠋ਃࡼӴễ˅ҹࡴᘏඃ৲ₓDŽ
ּᑨՈणᩲЎ˖ਃࡼഫϟṁ ˄Initiate Block Download˅ˈഫߚ↉ϟṁ ˄Download Block Segment˅ˈഫϟṁᴳ˄End Block Download˅ˈਃࡼഫϞӴ ˄Initiate Block Upload˅ˈഫߚ↉ϞӴ˄Upload Block
11
Byte 1-70
᳔7ᄫᅆ᭄˄segmented transfer˅
Byte 1-2 ᇍᬥ௦ᓩ
Byte 3 ᇍᬥᄤ௦ᓩ
Byte 4-7 ** Byte 2 16ԡഫₓṗܹ ˄ʌ8ԡ˅
8ԡ᭄ₓṗܹ 16ԡᢳₓṗܹ
Ởẋᬍবᇍᬥ0x1A01ՈݙᆍˈPDOՈݙᆍৃᝯᬍব˄བᵰᅆ⚍ᬃᣕ˄ৃবPDOᇘ˅˅DŽ
˄**᳔4ᄫᅆ᭄(expedited transfer)4ᄫᅆᄫᅆᩥ఼᭄˄segmented transfer˅݇Ѣblock transferখ᭄)
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com Segment˅ ഫϞӴᴳ˄End Block Upload˅DŽ
ϟṁ˄DDownload˅ᰃᣛᇍᇍᬥᄫẟᜐݭ᪡ˈϞӴ˄UploadU˅ᰃ˅ᣛᇍᇍᬥᄫẟᜐᪿ᪡DŽ ẝѯणᩲՈSDO ੑҸᄫ˄SDO CAN᭛ՈৰϔϾᄫᅆ˅᪱⊩ඊᅆϟ☦ᾬߚ᪸ᯢ˖ ˄þˉÿᜬ߾ϡּ݇ˈᑨЎ0˅DŽ
ਃࡼඳϟṁ˄Initiate Domain Download˅
Bit
7
6
5
4
3
2 n
1
0
ClientÎ 0 0 1 - ᪸ᯢ˖
zn ˖ བᵰe=1ˈϨs=1ˈ᳝߭ᬜˈ৺߭Ў0˗ᜬ߾᭄ᾬߚЁ᮴ᛣН᭄Ոᄫᅆ᭄˄ᄫᅆ8ˉn
ࠄ7᭄᮴ᛣН˅DŽ
ze ˖ 0 = ℷᐌӴễˈ1 = ࡴợӴễDŽ
zs ˖ ᰃ৺ᣛᯢ᭄⑃ᑺˈ0 = ᭄⑃ᑺᣛᯢˈ1 = ᭄⑃ᑺᣛᯢDŽ ze = 0ˈ s = 0˖ ϵCiAֱНDŽ
ze = 0ˈ s = 1 ˖ ᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈbyte 4ᰃ᭄Ԣԡᾬߚ˄LSB˅ˈbyte 7ᰃ᭄ʌԡᾬ
ߚ˄MSB˅DŽ
ze = 1 ˖ ᭄ᄫᅆЎᇚᡅϟṁ˄download˅Ո᭄DŽ
ඳߚ↉ϟṁ˄Download Domain Segment˅
Bit
7
6
5
4
3
2 n
1
0 c ClientÎ 0 0 0 t ᪸ᯢ˖
zn ˖᮴ᛣНՈ᭄ᄫᅆ᭄DŽབᵰ≵᳝ᣛᯢ↉⑃ᑺˈ߭Ў0DŽ zc ˖ 0 = ᳝ৢනߚ↉◄ᡅdownloadˈ1 = ᳔ৢϔϾ↉DŽ
zt ˖ ᢪথԡˈৢන↣Ͼߚ↉Ѹ᳓⏙►าԡ˄ৰϔӴễЎ0ˈᬜѢrequest/response˅DŽ
ਃࡼඳϞӴ˄Initiate Domain Upload˅
Bit
7
6
5
4
3
2 n
1
0
ClientÎ 0 1 0 - - - - - ÍServer 0 1 0 - ᪸ᯢ˖nˈeˈs˖ ϢਃࡼඳϟṁּৠDŽ
ඳߚ↉ϞӴ˄Upload Domain Segment˅
Bit
7
6
5
4
3
2 n
1
0 c ClientÎ 0 1 1 t - - - - ÍServer 0 0 0 t ᪸ᯢ˖nˈcˈt ˖ Ϣඳߚ↉ϟṁּৠDŽ
SDO ᅶ᠋᳡ࡵ఼ỞẋথߎབϟḐᓣՈ᭛ᴹЁℶSDOӴễ˖
ඳӴễЁℶ˄Abort Domain Transfer˅
Bit
7
6
5
4
3
2
1
0
CÎ/ÍS 1 0 0 - - - - - e s e s ÍServer 0 1 1 - - - - - ÍServer 0 0 1 t - - - - 12
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
ඳӴễЁℶ᭛Ёˈ᭄ᄫᅆ01ᜬ߾ᇍᬥ௦ᓩˈᄫᅆ2ᜬ߾ᄤ௦ᓩˈᄫᅆ4ࠄ7ࣙ32ԡЁℶۅˈᦣẴЁℶ᭛Ӵễॳˈᢅᜬ3-4᠔߾DŽ
ᜬ3-4 ඳӴễЁℶSDO˖16ẟࠊЁℶҷۅᜬ˄ᄫᅆ4ࠄ7˅
Ёℶҷۅ 0503 0000 0504 0000 0504 0001 0504 0002 0504 0003 0503 0004 0503 0005 0601 0000 0601 0001 0601 0002 0602 0000 0604 0041 0604 0042 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 1 0 5 0 1 4 - - 3 - - 2 cc sc 1 s - 0 0 0 ClientÎ 1 ÍServer 1 ᪸ᯢ˖
zcc ˖ᅶ᠋᭄ᰃ৺ՓϬCRC᷵ɀˈ 0 = noˈ1 = yesDŽ zsc ˖᳡ࡵ఼᭄ᰃ৺ՓϬCRC᷵ɀˈ 0 = noˈ 1 = yesDŽ
ᢪথԡ≵᳝Ѹ᳓ᬍব SDOणᩲ᱉ᯊ
☢⊩کՈClient/Server ੑҸᄫ ᮴ᬜՈഫᇣ˄ҙBlock Transferᓣ˅ ᮴ᬜՈᑣো˄ҙBlock Transferᓣ˅ CRC⏝᪳˄ҙBlock Transferᓣ˅ ݙᄬ⑶ߎ ᇍᬥϡᬃᣕ᪃⒲ ᪙ᪿাݭᇍᬥ ᪙ݭাᪿᇍᬥ ᇍᬥᄫЁᇍᬥϡᄬ ᇍᬥϡ࿁ᇘࠄPDO
ᇘՈᇍᬥՈ᭄ֲ⑃ᑺ᱉ߎPDO⑃ᑺ ϔჰᗻখ᭄ϡݐᆍ ϔჰᗻ᪂ݙᾬϡݐᆍ ܰӊ⏝᪳ᇐႸᇍᬥ᪃⒲༅ᯩ
᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺϡऍ‑ ᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺ ᭄ିൟϡऍ‑ˈ᳡ࡵখ᭄⑃ᑺڱ ᄤ௦ᓩϡᄬ
᱉ߎখ᭄Ոؐᇇೈ(ݭ᪃⒲ᯊ) ݭܹখ᭄᭄ؐ ݭܹখ᭄᭄ؐᇣ ᳔ؐᇣѢ᳔ᇣؐ ϔჰᗻ⏝᪳
᭄ϡ࿁ӴễֱᄬࠄᑨϬ
ϵѢᴀഄࠊᇐႸ᭄ϡ࿁ӴễֱᄬࠄᑨϬ ϵѢᔧࠡ᪂źᗕᇐႸ᭄ϡ࿁ӴễֱᄬࠄᑨϬ ᇍᬥᄫࡼᗕѻϣ⏝᪳ᇍᬥᄫϡᄬ
˄՟བˈỞẋ᭛ӊϣ៤ᇍᬥᄫˈԚϵѢ᭛ӊᤳണᇐႸ⏝᪳ѻϣ˅
ҷۅࡳ࿁ᦣẴ
13
ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com
zs ˖ ᰃ৺ᣛᯢ᭄▊⑃ᑺˈ0=᭄▊⑃ᑺᣛᯢˈ1˙᭄▊⑃ᑺᣛᯢDŽ zs=0 ˖ϵCiAֱНDŽ
zs=1 ˖ ᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽ z᳡ࡵ఼ᄫᅆ4ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0 Bit 7 6 5 4 3 0 1 seqno 2 1 0 ClientÎ c ClientÎ c …etc… c ᪸ᯢ˖ zc ˖ ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽ zseqno ˖ ߚ↉োˈ0 z᳡ࡵ఼ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉ℷܲ ᬊˈ᠔᳝↉ᖙ/ₑӴDŽ z᳡ࡵ఼ᄫᅆ2˖ࣙblksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔഫϟṁˈ 0 Bit 7 6 5 4 3 n 2 1 0 ClientÎ 1 1 0 ᪸ᯢ˖ zn ˖ ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄Ոᄫᅆ᭄DŽ zᅶ᠋᭄bytes1+2 ЎᭈϾ᭄▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϟṁ᭛Ё ccscৠᯊЎ1ᯊ CRCᠡ᳝ᬜDŽ ਃࡼഫϞӴ˄Initiate Block Upload˅ Bit 7 6 0 5 1 4 - 3 2 1 0 0 ClientÎ 1 - cc 0 - 1 ÍServer 1 0 1 - - - 1 0 ÍServer 1 0 1 - - - - 1 ÍServer 1 1 0 - - sc 0 ClientÎ 1 0 1 - - - 1 1 ᪸ᯢ˖ zcc ˖ ᅶ᠋᭄ᰃ৺ՓϬCRC᷵ɀˈ0˙no ˈ1=yesDŽ zsc ˖ ᳡ࡵ఼᭄ᰃ৺ՓϬCRC᷵ɀˈ0=noˈ 1=yesDŽ zs ˖ ᰃ৺ᣛᯢ᭄▊⑃ᑺˈ0=᭄▊⑃ᑺᣛᯢˈ1˙᭄▊⑃ᑺᣛᯢDŽ zs=0˖ ϵCiAֱНDŽ zs=1˖᭄ᄫᅆЎᄫᅆᩥ఼᭄ˈᄫᅆ4˖LSBˈᄫᅆ7˖MSBDŽ zᅶ᠋᭄ᄫᅆ4˖ᜬ߾blksizeˈे↣ഫЁߚ↉Ո᭄ֲˈ0 Ӵễणᩲˈ0=ϡܕ᩼ᬍবˈ1=ܕ᩼ᬍব˄བᵰᡅuploadՈ᭄ᄫᅆ᭄ᇥѢѢpstˈServerৃҹỞẋInitiate Domain UploadणᩲᑨਘᬍবࠄUpload Domainणᩲ˅DŽ 14 ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com ഫߚ↉ϞӴ˄Upload Block Segment˅ Bit 7 6 5 4 3 0 1 seqno 2 1 0 ÍServer c ÍServer c ..etc… c ᪸ᯢ˖ zc ˖ ᰃ৺᳝ৢනߚ↉◄ᡅdownloadˈ0˙yesˈ1=noDŽ zseqno ˖ ߚ↉োˈ0 zᅶ᠋ᄫᅆ1˖ᜬ߾᳔ৢϔϾᝯ៤ࡳᬊՈߚ↉ো˗བᵰЎ0ˈᜬ߾ߚ↉োЎ1Ոߚ↉ℷܲᬊˈ ᠔᳝↉ᖙ/ₑӴDŽ zᅶ᠋ᄫᅆ2˖ࣙblksizeˈ↣ϾഫЁߚ↉Ո᭄ֲˈᅶ᠋ᴎᖙ/ՓϬᅗẟᜐϟϔഫϟṁˈ 0 Bit 7 6 5 4 3 n 2 1 0 ÍServer 1 1 0 ᪸ᯢ˖ zn ˖ ᣛ߾᳔ৢϔϾഫՈ᳔ৢϔϾ↉Ё᮴ᛣН᭄Ոᄫᅆ᭄DŽ z᳡ࡵ఼᭄bytes1+2 ЎᭈϾ᭄▊Ո16ԡCRC˗া᳝ᔧਃࡼഫϞӴ᭛Ё ccscৠᯊЎ1 ᯊCRCᠡ᳝ᬜDŽ ϟ☦ඝߎϾ՟ᄤ᪸ᯢབԩՓϬSDOᴹ᪃⒲ϔϾᅆ⚍ՈᇍᬥᄫDŽ ՓϬϟ☦ՈSDO⍜ᙃˈؐ0x3FEᇚݭࠄᅆ⚍IDЎ2ՈᇍᬥᄫЁ௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥЁএˈՓϬਃࡼඳϟṁणᩲˈࡴợӴṗ˄2ᄫᅆ᭄˅˖ Client Î Server (ᅆ⚍#2) COB-ID 0 1 2 Byte 3 4 5 6-7 - 1 ClientÎ 1 1 0 - - - 1 0 ClientÎ 1 0 1 - - - - 1 602 2B 01 18 03 FE 03 - Client Í Server(ᅆ⚍ʿ2) 582 60 01 18 03 - - - ՓϬϟ☦ՈSDO⍜ᙃˈৠḋՈᇍᬥᄫЁ௦ᓩЎ0x1801ˈᄤ௦ᓩЎ3ՈᇍᬥᇚᝯᪿߎˈՓϬਃࡼඳϞӴणᩲˈ᳡ࡵ఼ՓϬࡴợӴṗᮍᓣᑨਘ˄2ᄫᅆ᭄˅˖ Client Î Server(ᅆ⚍ʿ2) COB-ID 0 1 2 Byte 3 4 5 6-7 602 40 01 18 03 - - - Client Í Server(ᅆ⚍ʿ2) 582 4B 01 18 03 FE 03 - 3ˊ6ˊ6 ᑨᗹᣛ߾ᇍᬥ(Emergency Object) 15 ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com ᑨᗹᣛ߾᭛ϵ᪂ݙᾬߎɴՈႸੑ⏝᪳ᢪথˈϵּ݇ᑨϬ᪂Ꮖ᳔ʌӬܜ൫থễࠄ݊ᅗ᪂DŽỆϬѢЁᮁିൟՈ⏝᪳ᨪֵোDŽ ϔϾᑨᗹ᭛ϵ8ᄫᅆඈ៤ˈḐᓣབϟ˖ sender Î receiver(s) COB-ID 0x080+Node_ID Byte 0-1 ᑨᗹ⏝᪳ҷۅ Byte 2 ⏝᪳ᆘᄬ఼ (ᇍᬥ0x1001) Byte 3-7 ࠊỤଚĽᅮՈ⏝᪳ऎඳ 16ẟࠊՈᑨᗹ⏝᪳ҷۅབϟᜬ3-5᠔߾DŽᑨᗹ⏝᪳ҷۅЁþxxÿᾬߚϵּᑨՈ᪂ᄤणᩲᅮНDŽ ᜬ3-5 ᑨᗹ⏝᪳ҷۅ˄16ẟࠊ˅ ᑨᗹ⏝᪳ҷۅ 00xx ҷۅࡳ࿁ᦣẴ Error Reset No Error 10xx Generic Error 20xx Current 21xx 22xx 23xx Currentˈdevice input side Currentˈinside the device Currentˈdevice output side 30xx Voltage 31xx Mains voltage 32xx Voltage inside the device 33xx Output voltage 40xx Temperature 41xx Ambient temperature 42xx Device tempearture 50xx Device hardware 60xx Device software 61xx Internal software 62xx User software 63xx Data set 70xx Additional modules 80xx Monitoring 81xx communication 8110 CAN overrun 8120 Error Passive 8130 8140 Life Guard Error Heartbeat Error Recovered from Bus-Off 82xx Protocol Error 8210 PDO no processed Due to length error 8220 Length exceedd 90xx External error F0xx Additional functions FFxx Device specific 16 ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com ⏝᪳ᆘᄬ఼(Error Register)᪂Ոᇍᬥᄫ˄௦ᓩ0x1001˅Ёˈᜬ3-6᪸ᯢњ⏝᪳ᆘᄬ఼ՈԡᅮНDŽ᪂ৃҹᇚݙᾬ⏝᪳ᇘࠄẝϾźᗕᄫᅆЁˈᑊৃҹᖿợᶹᔧࠡ⏝᪳DŽ ᜬ3-6 8ԡ⏝᪳ᆘᄬ఼ԡᅮН Bit ⏝᪳ିൟ 0 Generic 1 Current 2 Voltage 3 Temperature 4 Communication 5 Device profile specific6 Reserved(=0) 7 Manufacturer specific ࠊỤଚĽᅮ⏝᪳ऎඳৃ࿁ࣙϢ᪂ּ݇Ո݊ᅗՈ⏝ֵ᪳ᙃDŽ 17 ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com 4ǃᘏ ѢCANᘏඃՈCANopenตචỞᩳ᳝ҹϟĽ⚍˖ zՓϬᇍᬥᄫ˄OD˖Object Dictionary˅ᇍ᪂ࡳ࿁ẟᜐᷛޚ࣪ՈᦣẴDŽ zՓϬASCII᭛ḷ˖Ϲᄤ᭄᭛ḷ˄EDS˅᪂‑า᭛ӊ˄DCF˅ᇍ᪂ঞ݊‑าẟᜐᷛޚ࣪Ո ᦣẴDŽ zCANopenตචՈ᭄ѸᤶிඣˊѢ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Ž 18 ᑓᎲ਼এࡳऩċᴎথሩ᳝└݀ৌ www.zlgmcu.com 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 因篇幅问题不能全部显示,请点此查看更多更全内容