工程机器人及机器人学相关文档和matlab文件
|
@ -0,0 +1,889 @@
|
|||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
5FDIOJDBM CAN-bus ႋႨඌ
|
||||
/PUF
|
||||
TN01010101 V2.00 Date:2013/08/25 ۽ӱඌг࠺
|
||||
|
||||
োљ ଽಸ
|
||||
ܱՍ གྷӆሹཌ CAN-bus
|
||||
ᅋေ
|
||||
ѯหੱ ๙ए
|
||||
ຉ௪ࢲ ܒ๙ভ
|
||||
ᇔ؊ቅ ৵ࢤఖ
|
||||
Ч໓ࡥࢺࡹഡ၂۱ൌ࠽֥ CAN-bus ຩൈđؓ๙
|
||||
ভaሹཌ৵ࢤఖ֥࿊ᄴა࠹ෘđၛࠣ၂ུЌᅰ๙ॖौaิ
|
||||
ۚॆۄಠି৯֥ࣜဒծീb
|
||||
|
||||
©2020 Guangzhou ZHIYUAN Electronics Co., Ltd.
|
||||
ྩרൎ ರ௹ CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
2004-08-06
|
||||
ϱЧ 2009-11-24 ۽ӱႋႨг࠺
|
||||
V0.90 2009-12-08
|
||||
V1.00 2013-08-25 ჰၹ
|
||||
V1.01 Էࡹ໓֖
|
||||
V2.00 ྩ۬ڿൔ
|
||||
ྩڿோ
|
||||
ᄹࡆ҃ཌܿᄵ
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
ଢ
|
||||
|
||||
1. ൡႨٓຶ...................................................................................................................1
|
||||
|
||||
2. ভ࿊ᄴ...................................................................................................................2
|
||||
|
||||
2.1 ቋ֮ေ ................................................................................................................... 2
|
||||
|
||||
2.2 ভ࿊ᄴ֥ေ ....................................................................................................... 2
|
||||
|
||||
2.3 ভ࿊ᄴ֥ࠞཋᆴ ................................................................................................... 2
|
||||
|
||||
2.3.1 ভࢲܒ...........................................................................................................2
|
||||
|
||||
2.3.2 ভႵིቅ...................................................................................................3
|
||||
|
||||
2.3.3 DB9 ৵ࢤఖ֥Ⴕིቅ ..................................................................................3
|
||||
|
||||
2.3.4 ভൡႨোൕ২...........................................................................................3
|
||||
|
||||
2.4 ౼थႿভӉ؇֥ѯหੱ ....................................................................................... 5
|
||||
|
||||
2.4.1 CiA ࡩ໊֥קൈ ...........................................................................................5
|
||||
|
||||
2.4.2 ҐႨЧ໓ CAN ࢤ१ൈቋն֥֝ཌӉ؇........................................................6
|
||||
|
||||
2.5 ҃ཌӉ؇aࢫׄඔਈaཌভཌࣥᆭࡗ֥ܱ༢ .......................................................7
|
||||
|
||||
3. Ҭቖ֥࿊ᄴ...............................................................................................................8
|
||||
|
||||
3.1 ཌބ৵ࢤ ............................................................................................................... 8
|
||||
|
||||
3.2 DB9 ৵ࢤٚൔ֥ҬቖაҬ ..................................................................................9
|
||||
|
||||
3.3 OPEN5 ৵ࢤఖ .......................................................................................................11
|
||||
|
||||
4. ҃ཌܿٓაᇔ؊ቅ࿊ᄴ.....................................................................................14
|
||||
|
||||
4.1 ᆰཌຉ௪ࢲ ܒ..................................................................................................... 14
|
||||
|
||||
4.1.1 o൭ఠ൭pൔ৵ࢤ.........................................................................................14
|
||||
|
||||
4.1.2 o5pٳᆦൔ৵ࢤ.........................................................................................14
|
||||
|
||||
4.1.3 Ⴈ CAN ຩూᇏఖ֥৵ࢤ.......................................................................15
|
||||
|
||||
4.1.4 Ⴈ CAN ܻ༸ሇߐఖ֥৵ࢤ.......................................................................16
|
||||
|
||||
4.2 ྒຉ௪ࢲ ܒ......................................................................................................... 16
|
||||
|
||||
4.2.1 o֩Ӊpྒ৵ࢤ.........................................................................................16
|
||||
|
||||
4.2.2 Ⴈ CAN ࠢཌఖ֥৵ࢤ ..............................................................................17
|
||||
|
||||
5. ҕॉሧਘ.................................................................................................................19
|
||||
|
||||
6. ૧ᄳലૼ.................................................................................................................20
|
||||
|
||||
1
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
1. ൡႨٓຶ
|
||||
|
||||
Ч໓֖ඪૼࡹഡ၂۱ൌ࠽֥ CAN-bus ຩൈđؓ๙ভaሹཌ৵ࢤఖ֥࿊ᄴა࠹ෘđ
|
||||
ၛࠣ၂ུЌᅰ๙ॖौaิۚॆۄಠି৯֥ࣜဒծീb
|
||||
|
||||
1
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
2. ভ࿊ᄴ
|
||||
|
||||
2.1 ቋ֮ေ
|
||||
|
||||
๙ӈđCAN-bus ሹཌҐႨҵݼྐٳԮൻٚൔđၛච࢛ཌቔູҪđླေႵ 2 ۴ཌቔ
|
||||
ູҵݼྐٳཌčCAN_HaCAN_LĎbೂݔႨзච࢛ཌđзҪႋФ৵ࢤ֞ CAN_Shield
|
||||
ࠇຓ॔b
|
||||
|
||||
2.2 ভ࿊ᄴ֥ေ
|
||||
|
||||
ཌӉ
|
||||
ೂݔຓ҆ۄಠбࢠđCAN-bus ሹཌᇏ֥؋ཌčӉ؇ġ0.3mđ২ೂᄝ T ৵ࢤఖ)ॖၛ
|
||||
ҐႨыভb๙ӈđႨջзҪ֥ච࢛ཌቔູҵݼྐٳԮൻཌ߶۷ॖौbջзҪ֥ච࢛
|
||||
ཌ๙ӈФႨቔӉ؇նႿ 0.3m ֥ভb
|
||||
ѯหੱ
|
||||
ႮႿ౼थႿԮൻཌ֥ྐݼӾൈࡗđCAN-bus ሹཌ֥๙एॖି߶ෛሢѯหੱࡨཬ
|
||||
طᄹࡆb
|
||||
ຓࢸۄಠ
|
||||
сྶॉ੮ຓࢸۄಠđ২ೂႮఃగڵᄛႄఏ֥ՈۄಠbႭఃᇿၩႵնࠏੱۿᄎྛ
|
||||
ࠇఃᄝഡСषܱൈಸၞႄఏ܂ཌਫ਼ഈэ߄֥ӆކbೂݔمх૧ԛགྷোරႿ
|
||||
CAN-bus ሹཌაэ߄఼ਛ֥܂ཌਫ਼ѩྛሼཌ֥౦ঃđCAN ሹཌॖၛҐႨջචзҪ
|
||||
֥ච࢛ཌb
|
||||
หᆘቅॆ
|
||||
෮ҐႨ֥Ԯൻཌ֥หᆘቅॆჿູ 120ȤbႮႿ CAN-bus ሹཌࢤ֥ႨđCAN-bus ሹཌ
|
||||
֥หᆘቅॆॖିؿളэ߄bၹՎđ҂ି࠹ܙۚݖ෮Ⴈভ֥หᆘቅॆb
|
||||
Ⴕིቅ
|
||||
෮Ⴈভ֥ቅсྶቀཬܔđၛх૧ཌਫ਼ࢆݖնđ႕ཙ໊Ⴟሹཌଌ؊֥ࢤ൬ఖࡱb
|
||||
ູਔಒࢤק൬؊֥ཌਫ਼ࢆđх૧ྐّݼഝđᄝሹཌਆ؊ླေ৵ࢤᇔ؊ቅb
|
||||
|
||||
2.3 ভ࿊ᄴ֥ࠞཋᆴ
|
||||
|
||||
2.3.1 ভࢲܒ
|
||||
|
||||
ູਔх૧൳֞ຓࢸۄಠ֥႕ཙđԮൻඔऌ֥ভ๙ӈႨջႵзҪ֥ච࢛ཌđѩ
|
||||
зҪေࢤ֞ҕॉֹb
|
||||
|
||||
༯૫֥ 2.1a 2.2 ٳљਙԛਔջֆ/චзҪ֥ CAN ভ௩༅ა৵ࢤཌൕٓb
|
||||
|
||||
Wire str ucture Signal assig nment of wire and connection of earthing and terminator
|
||||
|
||||
Shield ed wire with CAN wire with connec tors
|
||||
tran sposed wires
|
||||
DSUB9 connector CAN_GND DSUB9 connector
|
||||
CAN_ H (female or male) (at wire shield) (female or male)
|
||||
CAN_ L pin designation pin designation
|
||||
CAN_L
|
||||
CAN_ GND 1 n.c. n.c. 1
|
||||
CAN_H
|
||||
2 2
|
||||
|
||||
3 3
|
||||
|
||||
4 n.c. n.c. 4
|
||||
|
||||
5 n.c. n.c. 5
|
||||
|
||||
6 n.c. n.c. 6
|
||||
|
||||
7 7
|
||||
|
||||
8 n.c. n.c. 8
|
||||
|
||||
9 n.c. n.c. 9
|
||||
|
||||
connec tor case n.c. n.c. connec tor case earth (PE)
|
||||
|
||||
n.c. = not connected
|
||||
|
||||
2.1 ֆзҪ֥ CAN ভ௩༅ა৵ࢤ
|
||||
|
||||
2
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
Wire str ucture Signal assi gnment of wire and connection of earthing and terminator
|
||||
|
||||
Do uble Shield ed wire wi th CAN wire with connectors
|
||||
tran sp osed wires
|
||||
DSUB9 connector Shie ld DSUB9 connector
|
||||
CAN_ H (at outer wire shield)
|
||||
CAN_ L (female or male) (female or male)
|
||||
CAN_ GND CA N_L
|
||||
Shield pin designation pin designation
|
||||
|
||||
1 n.c. n.c. 1
|
||||
|
||||
2 2
|
||||
|
||||
3 3
|
||||
|
||||
4 n.c. n.c. 4
|
||||
|
||||
5 5
|
||||
|
||||
6 n.c. CA N_H n.c. 6
|
||||
CAN_GND
|
||||
7 (at inner wire shield) 7
|
||||
|
||||
8 n.c. n.c. 8
|
||||
|
||||
Do not connect 9 n.c. n.c. 9
|
||||
to earth
|
||||
connec tor case connec tor case
|
||||
at this point !
|
||||
n.c. = not connected
|
||||
|
||||
earth (PE)
|
||||
|
||||
2.2 චзҪ֥ CAN ভ௩༅ა৵ࢤ
|
||||
|
||||
ᄝႨචҪзཌ֥ච࢛ཌൈđႨᆀсྶᇿၩğভ֥ຓзҪᆺି๙ݖ၂۱৵ࢤ
|
||||
ఖ֥ຓ॔৵ࢤ֞նֹഈbႮႿ৵ࢤఖ֥ຓ॔၂Ϯაၘࢤֹ֥ഡСభ૫ϰཌྷ৵ࢤđ৵ࢤ֞֞ຓ
|
||||
зҪ֥৵ࢤఖຓ॔ބ৵ࢤఖ֥ 5 ᆌᄝຩᇏ၂ׄ৵ࢤbᆃॖၛФႋႨ֞োර֥ଽзҪ္
|
||||
ࢤֹ֥ഡСഈb
|
||||
|
||||
2.3.2 ভႵིቅ
|
||||
|
||||
࠽ݓѓሙ ISO/DIS-11898 Ⴕၛ༯ࡩᆴğᆰੀҕඔaᇔ؊ቅაѯหੱ࣍රᆴđ
|
||||
ॖၛҕॉհ༂Ćໃᅳ֞ႄႨჷbb
|
||||
|
||||
і 2.1 აԮൻཌӉ؇ཌྷܱ֥ভᆰੀҕඔࡩᆴ
|
||||
|
||||
ሹཌӉ؇ ভ 1*) ᇔ؊ቅ ቋնѯหੱ
|
||||
|
||||
ᆰੀቅ ֝ཌࢩ૫ࠒ
|
||||
|
||||
0l40m 70mȤ/m 0.25 mm² j0.34 mm² 124Ȥ/1% 1Mbps
|
||||
AWG23, AWG22 at 40m
|
||||
|
||||
40ml300m <60mȤ/m 0.34 mm² j0.6 mm² 127Ȥ/1% 2*) >500Kbps
|
||||
AWG22, AWG20 at 100m
|
||||
|
||||
300ml600m <40mȤ/m 0.5 mm² j0.6 mm² 127Ȥ/1% 2*) >100Kbps
|
||||
AWG20 at 500m
|
||||
|
||||
600ml1km <20mȤ/m 0.75 mm² j0.8 mm² 127Ȥ/1% 2*) >50Kbps
|
||||
AWG18 at 1km
|
||||
|
||||
1) ভࢌੀҕඔࡩᆴğ120Ȥหᆘቅa5ns/m ൈĠ
|
||||
|
||||
2) ູਔϜভᆰੀቅႄఏ֥කࡨࢆ֞ቋཬđࢠն֥ᇔ؊ቅᆴč২ೂ࿊Ⴈ٤ѓሙ֥ 150j300ȤĠ
|
||||
|
||||
طᄝ ISO11898 ѓሙᇏđิ֥܂ҕॉᆴູo118Ȥ<RT<130ȤpٓຶĎႵᇹႿᄹࡆሹཌӉ؇b
|
||||
|
||||
2.3.3 DB9 ৵ࢤఖ֥Ⴕིቅ
|
||||
|
||||
֒ಒקভ֥කࡨުđ৵ࢤఖ֥Ԯൻቅ္ླေॉ੮ᄝভቅᇏb၇ᅶളӁഅ
|
||||
֥ܿٓđe.g. DB9 ৵ࢤఖૄ۱Ԩ֥ׄಸॆᄝ 2.5mȤ ބ10mȤᆭࡗđૄ۱Ҭ֥Ⴕིቅᄹ
|
||||
ࡆ 5mȤ֞ 20mȤb
|
||||
|
||||
2.3.4 ভൡႨোൕ২
|
||||
|
||||
ၛ༯і 2.2 ਙԛਔ၂ུ CAN ච࢛ཌ/зච࢛ཌ֥ভݼbᆃ۱ݼౢֆᆺ൞ቔູ
|
||||
၂۱ҕॉđѩ҂ေაі۬ᇏປಆ၂ᇁbႨ۴ऌఃႋႨਵთथקႨଧᇕো֥ভb
|
||||
|
||||
ᄝथקႨޅᇕভᆭభđ౨ҕॉটሱളӁഅ֥ভඌҕඔb
|
||||
|
||||
3
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
і 2.2 ၂ུࡩ֥ভো
|
||||
|
||||
RVVP зཌaච࢛зཌ
|
||||
|
||||
ݼ ྉඔ X ѓӫࢩ૫(mm2) ุ֝ࢲ( ܒNo./mm) ๙ए ()
|
||||
|
||||
RVVP 2X0.50 2X28/0.15 ච࢛༌щᆮ
|
||||
|
||||
RVVP 2X0.75 2X24/0.20 ච࢛༌щᆮ 1000
|
||||
|
||||
RVVP 2X1.00 2X32/0.20 ච࢛༌щᆮ 3000
|
||||
|
||||
ZR RVVP 2X1.00 ቅಗ 2X32/0.2 ච࢛༌щᆮ
|
||||
|
||||
RVVP 2X1.50 2X48/0.2 ච࢛༌щᆮ 5000
|
||||
|
||||
ZR RVVP 2X1.50 ቅಗ 2X48/0.2 ච࢛༌щᆮ
|
||||
|
||||
RVVP 2X2.50 2X49/0.25 ච࢛༌щᆮ
|
||||
|
||||
1) ၛഈভ֥ྐ༏টሱധᎪ㥬დཌভ܄ඳđຩᆶğwww.lingyu.cnbѓᇿ RVV ູ௴๙ච࢛ཌđRVVP
|
||||
ູзච࢛ཌčྍݓѓࡼච࢛৫ԛটđູ RVSPb طRVVP ଏಪູ٤ච࢛֥ཌভĎ
|
||||
|
||||
ݓຓ္ႵህളӁ CAN-bus ຩࠇ DeviceNet ຩ֥ভӌഅđбೂૅݓϤ๙ভ܄
|
||||
ඳđૌህളӁ֥ভൡކႿ۲ᇕگᄖ֥๙ຩ۽ӱཛଢbі 2.3aі 2.4 ਙԛਔ܄ھ
|
||||
ඳࡩ֥ DeviceNet ভ࿊b
|
||||
|
||||
і 2.3 ࡩ֥ DeviceNet ভোč1Ď
|
||||
|
||||
4
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
і 2.4 ࡩ֥ DeviceNet ভোč2Ď
|
||||
|
||||
2.4 ౼थႿভӉ؇֥ѯหੱ
|
||||
|
||||
2.4.1 CiA ࡩ໊֥קൈ
|
||||
|
||||
і 2.5 ູ CiA ิ֥܂ѯหੱၛࠣཌྷႋ֥ SJA1000aPCA82C200aPCA82527 ྉோ໊֥
|
||||
קൈ॥ᇅ࠷թఖ BTR0aBTR1 ഡקᆴb࠽ݓѓሙᇏ֥ሹཌӉ؇ܿٓđႭః൞ᄝۚѯหੱ༯
|
||||
č>500kbpsĎđაЧ໓֥ൌ࠽ܿٓ҂bఃჰၹିᄝႿЧ໓֥ܿٓ൞ၛࢤ१ൈቔູ႕ཙ
|
||||
CAN ྐݼԮൻᇶေၹൈቋߊ֥౦ঃ༯ᇅ֥קbൌ࠽ႋႨіૼđ๙ӈđႨЧ໓ࡩ֥ࢤ
|
||||
१ҕඔିഥ֞۷Ӊ֥एb
|
||||
|
||||
֒ಖđೂݔႨ CiA ࡩ֥ѯหੱđ൞ીႵޅ໙ี֥bೂݔሹཌഈ৵ࢤႵఃള
|
||||
Ӂഅ֥ሹཌଆॶđᄵႋھႄఏᇿၩb
|
||||
|
||||
і 2.5 CAN ຩ໊קൈѓሙčҐႨࣖᆒູ 16MHzĎ
|
||||
|
||||
ѯหੱ ໊ൈࡗ ૄ໊֥ൈࡗٺ ൈࡗحٺᆴ Ґဢ໊ׄᇂ BTR0 BTR1
|
||||
ሹཌӉ؇ حඔਈ [HEX] [HEX]
|
||||
|
||||
1 Mbps 1Ȱs 8 125ns 6tq 00 14
|
||||
|
||||
25 m (750ns)
|
||||
|
||||
800 Kbps 1.25Ȱs 10 125ns 8tq 00 16
|
||||
|
||||
50 m (1us)
|
||||
|
||||
500 Kbps 2Ȱs 16 125ns 14tq 00 1C
|
||||
|
||||
100 m (1.75us)
|
||||
|
||||
250 Kbps 4Ȱs 16 250ns 14tq 01 1C
|
||||
|
||||
250 m (3.5us)
|
||||
|
||||
125 Kbps 8Ȱs 16 500ns 14tq 03 1C
|
||||
|
||||
500 m (7us)
|
||||
|
||||
100 Kbps 10Ȱs 16 625ns 14tq 04 1C
|
||||
|
||||
650 m (8.75us)
|
||||
|
||||
50 Kbps 20Ȱs 16 1.25us 14tq 09 1C
|
||||
|
||||
1 km (17.5us)
|
||||
|
||||
20 Kbps 50Ȱs 16 3.125us 14tq 18 1C
|
||||
|
||||
2.5 km (43.75us)
|
||||
|
||||
10 Kbps 100Ȱs 16 6.25us 14tq 31 1C
|
||||
|
||||
5 km (87.5us)
|
||||
|
||||
1) ᇿၩğሹཌӉ؇֥ᆜඔᆴ൞ၛ 5ns/m ֥ভൈູࠎԤ֥đ֥קࡌطଽ҆ൈ၇ঠႿᆃུѯหੱ
|
||||
|
||||
1M...800KbpsĠ500k...250KbpsĠ300nsĠ125k...100KbpsĠ450nsĠ50k...10Kbpsğ1.5tqb۷ྐ֥؟༏ҕ
|
||||
|
||||
ॉ CiA ֥ԛϱb
|
||||
|
||||
5
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
2.4.2 ҐႨЧ໓ CAN ࢤ१ൈቋն֥֝ཌӉ؇
|
||||
|
||||
ႨЧ໓ࡩ֥ CAN ࢤ१ٚൔൈđቋն֥֝ཌӉ؇ॖၛ۴ऌ༯૫֥ٚӱൔট࠹ෘğ
|
||||
|
||||
lMAX tx cabledelay (tx Ģ tSAMPLING Ē tDELAY) ܄ൔ 2-1
|
||||
2
|
||||
|
||||
lMAX
|
||||
ts1 2 trxdel ttxdel 2 topto ܄ൔ 2-2
|
||||
2cable de lay
|
||||
|
||||
ts1 T0 Tbrp Tseg1 Tsjw1 (ts1ĢҐဢׄ) ܄ൔ 2-3
|
||||
|
||||
۲ཛҕඔඪૼೂ༯ğ (ؓႿӈႨ֥ SJA1000 ྉோ)
|
||||
(BTR0x Ģ CAN ॥ᇅఖ BTR0 ࠷թఖଽಸ
|
||||
T0 = 2/16 MHz = 125 ns ၛ 0x3F ဃз(->BTR0 ࠷թఖ໊ 6...0))
|
||||
Tbrp = BTR0x + 1 (BTR1x Ģ CAN ॥ᇅఖ BTR1 ࠷թఖଽಸ
|
||||
ၛ 0x0F ဃз(->BTR1 ࠷թఖ໊ 3...0))
|
||||
Tseg1 = BTR1x + 1 (Ґဢ๋ׄሇॺ؇Ġsjw Ģ BTR1 ࠷թఖଽಸၛ 0xC0 ဃз
|
||||
(-> BTR1 ໊֥ 7 ބ6)đ ᆴ֥ٓຶ 0..3)
|
||||
Tsjw = sjw + 1 (CAN ॥ᇅఖൈ)
|
||||
(ൌҩᆴ)
|
||||
trxdel = max. 62 ns (CAN ؿෂఖ 82C250 ֥ൈᆴ)
|
||||
50 ns
|
||||
(৵֞ HCPL710x ֥ׅൈ)
|
||||
ttxdel = max. 40 ns (Tx) (HCPL710x ܻൈ)
|
||||
max. 80 ns (Rx)
|
||||
30 ns (৵֞ 82C250 ֥ׅൈ)
|
||||
(ච࢛ཌׅᆴ(ႵིӉ؇), ӌഅܿٓ, భ૫֥ CiA ѓሙ)
|
||||
topto = max. 40 ns
|
||||
typ. 28 ns
|
||||
15 ns
|
||||
|
||||
Cable delay = 5.5 ns/m
|
||||
|
||||
ၹՎ, ؓႿ CAN ॥ᇅఖ SJA1000đ82527 ࠇ 8xC591 ྉோđၛ༯ٚӱ֥ࢲ( ݔᄝ 5.5 ns/m
|
||||
ভൈ֥౦ঃ༯đ෮Ⴕൈࡗֆູ໊ ns)іղൔğ
|
||||
|
||||
lMAX 125ns BTR0x
|
||||
1 BTR1x 1sjw1 1 2 trxdel ttxdel 2 topto
|
||||
|
||||
11ns m ܄ൔ 2-4
|
||||
|
||||
і 2.6 ູ֝ཌቋնӉ؇֥ׅᆴބ၂ུѯหੱ౦ঃ༯֝ཌ֥ቋཬӉ؇b
|
||||
|
||||
֝ཌቋնӉ؇֥ׅᆴކژЧ໓֥ࣜဒᆴđѩࣜݖൌ࠽ҩਈ֥ᆣൌbЧ໓෮ਙඔऌၘࣜ
|
||||
|
||||
ݖѓሙҩ൫ѩ࿖ 1Mbps หקᆴҰb
|
||||
|
||||
ቋཬႵིཌӉၘࣜФႨᄝӌഅܿٓᇏቋҵൈ֥ӆކbᆃུཌӉ҂ି๙ݖҩਈটᆣൌđ
|
||||
|
||||
ၹູჭࡱ֥ൈޓᆞӈݺႿቋҵӆק֥ܿٓܿކb
|
||||
|
||||
Ⴎ໑؇ႄఏ֥ൈ֥ཁᇷэ߄ॖၛФஆԢb๙ӈႮఖࡱളӁ༂ҵႄఏ֥ൈ֥ொ၍б໑
|
||||
|
||||
؇ႄఏ֥ေնb
|
||||
|
||||
౨ᇿၩջႵᇔ؊ቅ֥ຩܒӮਔᆃུ֥ܿٓࠎԤbૄ۱ཌഈ֥ቅčೂࢠӉ֥ᆦཌĎ
|
||||
|
||||
߶ႄఏႵིཌӉ֥ࡨഒb
|
||||
|
||||
6
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
і 2.6 ѓሙѯหੱൈ֥֝ཌቋնӉ؇a֝ཌቋཬӉ؇
|
||||
|
||||
֝ཌቋնӉ؇ ֝ཌቋཬӉ؇ ѯหੱ [kbps] SJA1000 ࠷թఖ
|
||||
lmax [m] 1*Ď lmin [m] 2*Ď
|
||||
1000 BTR0 [HEX] BTR1 [HEX]
|
||||
37 20 800 00 14
|
||||
59 42 666.6 00 16
|
||||
80 65 500 00 18
|
||||
130 110 333.3 00 1C
|
||||
180 160 250 01 18
|
||||
270 250 166 01 1C
|
||||
420 400 125 02 1C
|
||||
570 550 100 03 1C
|
||||
710 700 66.6 43 2F
|
||||
1000 980 50 45 2F
|
||||
1400 1400 33.3 47 2F
|
||||
2000 2000 20 4B 2F
|
||||
3600 3600 12.5 53 2F
|
||||
5400 5400 10 5F 2F
|
||||
7300 7300 67 2F
|
||||
|
||||
1*Ďൈ 2*Ďൈ
|
||||
trxdel = 50 ns trxdel = 62 ns
|
||||
ttxdel = 30 ns ttxdel = 60 ns
|
||||
topto = 15 ns topto = 40 ns
|
||||
TDEL = 110 ns
TDEL = 202 ns
|
||||
|
||||
2.5 ҃ཌӉ؇aࢫׄඔਈaཌভཌࣥᆭࡗ֥ܱ༢
|
||||
|
||||
҃ཌӉ؇aࢫׄඔਈaཌভཌࣥᆀᆀᆭࡗթᄝ٤ӈࣅૡ֥ܱ༢bೂ෮ൕđູࢩ
|
||||
|
||||
CANopen ܿٓѓሙ֥ܱ༢b๙ӈ౦ঃ༯ླေ༵ಒקԮൻएׄࢫބඔਈđಖުथקҐႨ
|
||||
|
||||
હཌভb 2.3 ҃ཌӉ؇aࢫׄඔਈaཌভཌ֥ࣥб২ܱ༢
|
||||
|
||||
7
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
3. Ҭቖ֥࿊ᄴ
|
||||
|
||||
3.1 ཌބ৵ࢤ
|
||||
|
||||
CAN ຩ֥ຉ௪ࢲܒ൞oᆰཌൔp֥ĠؓбྒྙࠇߌྙຩđຩႵਆ۱o؊ׄpbᄝ
|
||||
ਆ۱؊ׄഈđႵ 1 ۱նჿ 120Ȥ֥ᇔ؊ቅФ৵ࢤᄝ CAN_H ބCAN_L ྐݼཌഈb
|
||||
|
||||
౨ಒಪሹ൞ᄝሹཌਆ؊Ⴈֆ֥ᇔ؊ቅđၹູ֒ᄝࡼটؓຩቔԛ၂ུڿэൈđ
|
||||
ᄝሹཌࢤࠇ PCB ֥ቅޓФؿགྷbᆌൔ֥ࠇ।ൔ֥ 9 ᆌ DB9 ৵ࢤఖॖၛФႨቔ
|
||||
CAN ሹཌࢤb
|
||||
|
||||
$"/ #PBS E $POOFDU JOH $"/@) 'FNBM F $POOFDU PS
|
||||
$"/@(/%U P $"/@-
|
||||
F H1$*
1S PU FDU J WF $POEVDU PS 1& $"/@(/% .BM F $POOFDU PS
|
||||
$"/64#
|
||||
/FU 1& 5FS NJO BU PS .BM F 5FS NJ OBU PS
|
||||
7 .&$ "/
FU D /FU 0SEFS OP $
|
||||
|
||||
XJ U I 1& $POOFDU PS
|
||||
'FNBM F 5FS NJOB U PS
|
||||
5 $POOFDUPS 0SEFS OP $
|
||||
|
||||
0S EFS OP $
|
||||
|
||||
M
N
|
||||
|
||||
5 $POOFDUPS 5 $POOFDUPS 5 $POOFDUPS 5 $POOFDUPS
|
||||
$ $ $ $ 5FS NJO BU PS
|
||||
|
||||
M
N M
N M
N M
N
|
||||
|
||||
$"/ $#. $"/ $#. $"/ $#. F H
|
||||
%* 0 "* $0. $"/4 14* OU FS G BDF
|
||||
$4$
|
||||
PS
|
||||
$"/1 $ #PBSE
|
||||
|
||||
$"/$BCM F $"/$BCM F $"/$BCM F
|
||||
0S EFS OP $ 0S EFS OP $ 0S EFS OP $
|
||||
|
||||
3.1 CAN-bus ຩ֥ཌა৵ࢤ
|
||||
|
||||
၂ུ CAN-bus ଆॶᆦӻᆃᇕሹཌࢲܒđၹູૌႵਆ۱҂֥ DB9 Ҭቖğ၂۱৵ࢤ
|
||||
ൻೆཌđਸ਼၂۱৵ࢤൻԛཌbೂݔ၂۱ଆॶФՖ৽ࢤഈ၍ԢđCAN ሹཌି৫ࠧཌྷ৵ࢤđ
|
||||
ၹູ၂۱Ⴕ।ൔ֥ DB9 ৵ࢤఖطਸ਼၂۱Ⴕ၂۱ᆌൔ֥ DB9 ৵ࢤఖb
|
||||
|
||||
๙ӈ౦ঃ༯đሹཌ؊ׄࣇႵ၂۱ CAN ৵ࢤ֥ഡСb֥৵ࢤॖၛ๙ݖ၂۱ T ৵ࢤఖb
|
||||
ሹཌଌ؊ᆦཌӉ؇ႋ࣐ॖି֥؋b๙ӈđࢤ࣍ 0.3m ֥Ӊ؇൞ॖၛ֤֞Ќᆣ֥b
|
||||
|
||||
ҕॉ ໊ؓCAN ሹཌႵ႕ཙđၹູૄ۱ଆॶдՎᆭࡗ൞ཌྷۯ֥bҕॉ໊ᄝຩ
|
||||
ᇏ֥ଖ၂ׄФࢤֹb౨ಒಪᆺႵ၂۱ࢤֹׄđڎᄵ߶ᄝ CAN_GND ཌഈྙӮֹߌੀb
|
||||
|
||||
ೂݔ৵ࢤਔ၂۱ીႵగۯ֥ CAN ࢤ१đӁളི֥ࣼݔཞ৵ֹbၹՎđቋ؟ᆺି৵
|
||||
ࢤ၂۱ીႵగۯ֥ CAN ࢤ१b
|
||||
|
||||
෮Ⴕ CAN ӁႋھऎСగۯࢤ१bൌ࠽ഈೂݔଆॶીႵగۯࢤ१đࡼᄝଆ
|
||||
ॶ൭ҨФหљิࠣb
|
||||
|
||||
ೂݔႨֆҪзভൈđቔູ CAN_GND ֥зཌ҂ି৵ࢤ֞ DB9 ࢤ֥зҪđ
|
||||
ᆺିა pin 3 ބ/ࠇ pin 6 ৵ࢤbзҪड़קᄝଖ၂ׄԩФࢤֹčPEĎbၹՎđॖၛҐႨห൹
|
||||
֥৵ֹ֥ᇔ؊b
|
||||
|
||||
ೂݔႨਔචҪзভđؓႿଽзҪđোරႿֆҪзভзҪ֥ႋႨğቔູ
|
||||
CAN_GND ྐݼཌᄝଖ၂ׄԩࢤֹ(PE)b
|
||||
|
||||
ຓзҪဢႋھᄝଖ၂ׄԩࢤֹčPEĎb҂൞ቔູ CAN_GNDbط൞đຓзҪႋ
|
||||
ھሹ൞Ф৵ࢤ֞ DB9 Ҭቖ֥ࢤзҪbೂݔ৵ࢤఖીႵзҪčೂыভ৵ࢤఖĎຓ
|
||||
зҪߎླေ৵ࢤ֞ pin 5 ၛಒЌॖौ֥ࢤֹb
|
||||
|
||||
8
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
3.2 CAN-bus ຩ֥ཌভა৵ࢤఖ
|
||||
|
||||
ၛ༯ਙіඪૼਔቆࡹ CAN ຩൈႋھ൯֥ܿᄵğ
|
||||
|
||||
і 3.1 CAN-bus ຩ֥৵ࢤܿᄵ
|
||||
|
||||
ܿᄵඪૼ
|
||||
|
||||
1 ຩਆ؊сྶႵਆ۱ٓຶᄝ Ȥ35Ȥ֥ᇔ؊ቅčᄝ CAN_L ބCAN_H ྐݼᆭࡗĎĆ
|
||||
|
||||
2 ҕॉ໊o$"/@(/%pᄝଖ၂ׄԩ৵ࢤֹ֞čPEĎbପсྶ൞၂ׄࢤֹĆ
|
||||
|
||||
3 ֒ႨචҪзভൈđຓзҪᄝଖ၂ׄԩ৵ࢤֹ֞bପ္сྶ൞၂ׄࢤֹ!
|
||||
|
||||
4 ીႨ֥ᆦཌсྶ࣐ॖି֥؋(Ӊ؇<0.3m)Ć
|
||||
|
||||
5 Ⴈൡ֥֒ভোĆсྶಒקভ֥කࡨĆ
|
||||
|
||||
6 ಒЌ҂ေᄝۄಠჷ҃࣍ڸᇂ CAN ሹཌbೂݔ҂֤҂ᆃဢቓđࡹၰႨචҪзভb
|
||||
|
||||
3.2 DB9 ৵ࢤٚൔ֥ҬቖაҬ
|
||||
|
||||
հ༂Ćໃᅳ֞ႄႨჷbඪૼਔ CAN ሹཌ֥ 9 ᆌ DB9 ৵ࢤఖč܄Ďčა CiA ླྀ߶֥
|
||||
|
||||
DRP303-1 ѓሙ၂ᇁĎ֥ႄٳb๙ӈ֥ӁᇏđCAN ଆॶࠇ CAN षؿϰᆺٳ CAN_Ha
|
||||
|
||||
CAN_L ྐݼđࣼॖၛᆞӈ๙bၹՎđໃࡆඪૼൈđն؟ඔ৵ࢤভᇏ҂ླေٳఃྐ
|
||||
|
||||
ݼb
|
||||
|
||||
і 3.2 DB9 ᆌൔ৵ࢤఖ
|
||||
|
||||
ྐݼ ႄ ྐݼ
|
||||
|
||||
CAN_GND 6 1 Ќ
|
||||
|
||||
CAN_H 7 1 2 CAN_L
|
||||
Ќ CAN_GND
|
||||
6 2
|
||||
(CAN_V+) 7 Ќ
|
||||
8 8 3 3
|
||||
|
||||
9 4
|
||||
5
|
||||
9
|
||||
4
|
||||
|
||||
9
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
5 CAN_SHIELD
|
||||
|
||||
CAN_LaCAN_H CAN ྐݼཌb
|
||||
|
||||
CAN_GND CAN Ҫ֥ҕॉb৵ࢤ֞зҪࠇᆀ֒ႨචҪзভൈđ৵ࢤ֞ଽ
|
||||
|
||||
зҪb
|
||||
|
||||
(GND) ॖ࿊֥ GND ބCAN_V+֥ҕॉčᄝЧ໓षؿϰഈٳ۳ CAN_GNDĎb
|
||||
|
||||
CAN_SHIELD CAN зҪđ္҆ކֹٳѓູ FGb
|
||||
|
||||
֒ႨචҪзভൈđCAN_SHLD ৵ࢤ֞ຓзҪ ބDB9 ৵ࢤఖ֥з॔b
|
||||
|
||||
ѩđຓзҪФ৵ࢤ֞ pin 5 ၛЌᆣ֒ႨીႵз৵ࢤ֥৵ࢤఖൈđॖौ֥
|
||||
|
||||
ࢤֹb
|
||||
|
||||
(CAN_V+) ॖ࿊֥đCAN ࢤ१֥ჷ(+7V<V+<+13V)b
|
||||
|
||||
ն؟ඔЧ໓षؿϰ҂ေ๙ݖሹཌ܂đೂླݔေҐႨሹཌ܂đ҂ܵႨޅᇕٚ
|
||||
|
||||
مđಒЌჷཌᄝྐݼཌֻ֥၂ҪзҪຓđູਔЌՎࢠ֥֮කࡨđႋ
|
||||
|
||||
Ⴈቀܔՙ֥ཌb
|
||||
|
||||
ܼᇜᇁჹሰิ ܂TEZ ༢ਙ৵ࢤఖđቋնॖၛ৵ࢤཌູࣥ 1.5mm2 ֥௴๙ච࢛ཌa
|
||||
|
||||
зච࢛ཌĠਸ਼ຓđຓ॔ഈഡႵॖၛڿэଽࡹ 120Ȥᇔ؊ቅ֥ѭषܱđॖၛٚьֹႨቔູ
|
||||
|
||||
CAN-bus ຩᇔ؊৵ࢤఖđࠇ๙৵ࢤఖb
|
||||
|
||||
3.3 TEZ-C01 ৵ࢤఖູ TEZ-C01 ৵ࢤఖ֥ຓܴൕၩb
|
||||
|
||||
3.3 TEZ-C01 ৵ࢤఖ
|
||||
|
||||
TEZ-C01/02/03 ৵ࢤఖॖႨႿۚղ 1Mbps ੱ֥ CAN-bus ຩᇏđॖၛิ܂ሹཌভ
|
||||
ॹđٚьđॖौ֥৵ࢤିۿb
|
||||
|
||||
TEZ-C01/02/03 ৵ࢤఖႨႿൌགྷགྷӆഡСॹ৵ࢤ֞ CAN-bus ຩđ္ॖၛቔູຩᇔ
|
||||
؊৵ࢤఖa๙৵ࢤఖaѓሙሇߐఖႨbൡႨၛ༯ӆކğ
|
||||
|
||||
ॹ৵ࢤ CAN-bus གྷӆഡС֞ CAN-bus ຩđิ܂ভॹࢤཌ֥ٚمb
|
||||
ႨႿ CAN-bus ຩ֥ਆ۱ᇔ؊ࢫׄđቔູࠢӮ 120 ଚቅ֥ሹཌ؊ࢤఖb
|
||||
ႨႿ CAN-bus ຩ֥ᇏࡗࢫׄđቔູຩᇏ֥๙৵ࢤఖb
|
||||
120 ଚ֥ᇔ؊ቅၘࣜࠢӮᄝ TEZ-C01/02/03 ৵ࢤఖᇏđᄝຓ҆๙ݖ၂۱߁षܱট
|
||||
ఓğຓ֥҆ѓ്o0/໊pᇂіൕႨଽᇂ֥ 120 ଚᇔ؊ቅĠo0''໊pᇂіൕ؎षč҂
|
||||
ႨĎଽᇂ֥ 120 ଚᇔ؊ቅbԢՎᆭຓđۚᇉਈ֥зൔ৵ࢤఖຓ॔ಒЌਔࠧьᄝቋ֥ۚ
|
||||
Ԯൻੱ༯đӁ္ିЌӻۚ؇֥ॆۄಠି৯b
|
||||
TEZ-C01/02/03 ৵ࢤఖഡ࠹ႨႿ ކژCiA Draft Recommendation 303-1 ѓሙ֥ܿקভ
|
||||
ຓ҆ᆰູࣥ 8mma֝ཌࢩ૫ࠒཬႿ 1.5mm2 ֥෮Ⴕ CAN-bus ভbTEZ-C01/02/03 ৵ࢤఖ
|
||||
္ॖၛᆦӻջႵ၂ུࡱ֥з࢛ކভb
|
||||
|
||||
10
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
3.4 TEZ-C01 ৵ࢤఖோ
|
||||
|
||||
3.5 TEZ-C02 ৵ࢤఖோ
|
||||
|
||||
3.6 TEZ-C03 ৵ࢤఖோ
|
||||
|
||||
3.3 OPEN5 ৵ࢤఖ
|
||||
|
||||
հ༂Ćໃᅳ֞ႄႨჷbඪૼਔ CAN ሹཌ֥ OPEN5 ৵ࢤఖč๙ӈ֥ PHOENIX ؊ሰĎ
|
||||
֥ႄྐٳݼb๙ӈᆺླٳğCAN_HaCAN_L ྐݼb
|
||||
|
||||
11
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
ႄ і 3.3 OPEN5 ৵ࢤఖ ൕၩ
|
||||
5 ྐݼ
|
||||
4 (CAN_V+)
|
||||
3 CAN_H
|
||||
2 CAN_SHIELD
|
||||
1 CAN_L
|
||||
(CAN_GND)
|
||||
|
||||
OPEN5 Ҭቖ֞ DB9 Ҭቖ(҂ջჷ৵ࢤ)֥৵ႄྐٳݼ 3.7b
|
||||
|
||||
5IF QJ O %46#
|
||||
DPOOFDU PS J T
|
||||
BTT J HOFE J O
|
||||
BDDPS EBODF XJU I
|
||||
$J " %31
|
||||
|
||||
3.7 OPEN5 ৵ࢤఖა DB9 ৵ࢤఖ֥৵
|
||||
|
||||
ܼᇜᇁჹሰളӁ֥ CAN-bus Ӂ၂Ϯ࿊ᄴ DB9 ᆌ/।Ҭቖđఃܵྐקݼၬೂ
|
||||
і 3.4 ෮ൕbDB9 Ҭቖ֥ܵקၬ ކژCiA ѓሙb
|
||||
|
||||
і 3.4 CAN ৵ࢤఖ DB9 ᆌҬቖ
|
||||
|
||||
ႄݼ ྐݼ ିۿ
|
||||
2 CAN_L CAN_L ྐݼཌ
|
||||
7 CAN_H CAN_H ྐݼཌ
|
||||
|
||||
3a6 GND ҕॉֹ
|
||||
5 CAN_SHIELD зཌ
|
||||
ໃႨ
|
||||
1a4a8a9 ॢ
|
||||
|
||||
Ⴈॖၛ๙ݖ࿊֥ DB9OPEN5 ሇߐఖđࡼ DB9 ᆌൔҬቖ֥ CAN-bus ྐݼሇߐӮ 5
|
||||
ႄ֥ DeviceNet ࠇ CANopen ຩb༯૫ၛ৵ࢤᇀ DeviceNet ຩູ২đࢺക OPEN5 Ҭ
|
||||
ቖ֥ൻԛྐݼđೂ 3.8 ෮ൕb
|
||||
|
||||
V ޣ P.M.S#207C
|
||||
CAN_H Ϣ EIA935A ཌভཋᇅ
|
||||
|
||||
зཌ
|
||||
|
||||
CAN_L ড P.M.S.#297C
|
||||
V ޑ P.M.S.#426C
|
||||
|
||||
3.8 OPEN5 ৵ࢤఖ֥ DeviceNet קၬ
|
||||
|
||||
12
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
3.9 ູ DB9OPEN5 ሇߐఖ֥ຓܴൕၩb
|
||||
|
||||
3.9 DB9OPEN5 ৵ࢤఖ
|
||||
|
||||
13
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
4. 布线规范与终端电阻选择
|
||||
|
||||
4.1 直线型拓扑结构
|
||||
|
||||
直线型拓扑结构是 CAN 总线布线规范中最为常用的。如图 4.1 所示。即主干的两条线
|
||||
上分支出支线到各个节点。主干的两端配置合适的终端电阻实现阻抗匹配(2km 内通常为
|
||||
120 欧)。
|
||||
|
||||
图 4.1 直线型拓扑结构
|
||||
|
||||
4.1.1 “手牵手”式连接
|
||||
由于分支长度以及分支长度的积累都会造成阻抗不连续,在接头处产生“反射”现象。
|
||||
|
||||
所以直线型拓扑结构中,最常用的就是“手牵手”式的连接。如图 4.2 所示。
|
||||
|
||||
图 4.2 “手牵手”式的连接
|
||||
|
||||
由于要在同一个接线端子里面插入 2 根线,在线缆较粗的情况下,可能插不进去,或者
|
||||
无法可靠牢固地拧紧。所以在设计节点的时候,将同一路 CAN 分成 4 个端子引出,2 两两
|
||||
并联,如图 4.3 所示。
|
||||
|
||||
图 4.3 方便接线的“手牵手”方式
|
||||
|
||||
4.1.2 “T”型分支式连接
|
||||
在绝大多数的工业现场、轨道机车中,由于整体线缆非常多,均需要使用接线排,方便
|
||||
|
||||
维护。所以 CAN 的节点分支也不可避免。只能尽量减小分支长度。如图 4.4 所示。
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
图 4.4 T 型分支方式
|
||||
|
||||
这个分支长度在 1M 波特率下不得大于 0.3m,因为 1M 波特率是 CAN 的最高波特率,
|
||||
所以其他波特率时,分支长度如果也遵循 0.3m 的规范,则可以稳定运行。
|
||||
|
||||
当然在一些场合无法做到很短的分支,所以根据不同波特率,有不同的分支长度规范,
|
||||
如表 4.1 所示,为高速 CAN 中的分支规则。可见随着波特率增加,分支约束越来越宽松。
|
||||
|
||||
表 4.1 不同波特率下的分支规则
|
||||
|
||||
如果更低的波特率,分支规则会继续放宽,如在 5K 波特率下,笔者曾经测试过 100 米
|
||||
的分支可以稳定通讯。
|
||||
4.1.3 使用 CAN 网桥中继器的连接
|
||||
|
||||
如果布线长度超过 CAN –bus 在某一波特率下的最大值,则需要使用 CAN 网桥
|
||||
CANBridge 进行中继延长距离。如图 4.5 所示。
|
||||
|
||||
图 4.5 使用 CAN 网桥延长距离
|
||||
|
||||
在不同波特率下,增加 CANBridge 网桥的最大距离也不同,这里按以 1.5mm 的屏蔽双
|
||||
绞线为传输介质,需要增加网桥的实际距离与终端电阻值,如表 4.2 所示。
|
||||
|
||||
15
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
表 4.2 CAN 实用最大距离
|
||||
|
||||
通讯距离 最高波特率(bps)
|
||||
25m 1M(终端电阻为 120 欧)
|
||||
40m 800k(终端电阻为 120 欧)
|
||||
70m 500k(终端电阻为 120 欧)
|
||||
140m 250k(终端电阻为 120 欧)
|
||||
280m 125k(终端电阻为 120 欧)
|
||||
350m 100k(终端电阻为 120 欧)
|
||||
450m 80k(终端电阻为 120 欧)
|
||||
700m 50k(终端电阻为 120 欧)
|
||||
1 km 35k(终端电阻为 120 欧)
|
||||
2 km 18k(终端电阻为 120 欧)
|
||||
3 km 9k(终端电阻为 160 欧)
|
||||
4 km 7k(终端电阻为 220 欧)
|
||||
5 km 7k(终端电阻为 240 欧)
|
||||
6 km 6k(终端电阻为 270 欧)
|
||||
7 km 5k(终端电阻为 300 欧)
|
||||
8 km
|
||||
9 km 5k(终端电阻为 330 欧)
|
||||
10 km 5k(终端电阻为 360 欧)
|
||||
5k(终端电阻为 390 欧)
|
||||
|
||||
4.1.4 使用 CAN 光纤转换器的连接
|
||||
|
||||
在某些电磁干扰非常严重场合,需要将 CAN-bus 转换为光信号来传输,避免受到雷击
|
||||
浪涌等影响。如图 4.6 所示为使用 CANhub-AF2S2 两路光纤两路 CAN 的组网方案。自动中
|
||||
继,不断延长距离。
|
||||
|
||||
图 4.6 CAN 光纤组网方案
|
||||
|
||||
4.2 星型拓扑结构
|
||||
|
||||
4.2.1 “等长”星型连接
|
||||
|
||||
16
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
图 4.7 星形状等长拓扑结构
|
||||
|
||||
在星形基本等长情况下,可不使用集线器设备,调整每个节点的终端电阻即可实现组网:
|
||||
|
||||
R=n×60 欧姆
|
||||
|
||||
R:每个分支的终端电阻
|
||||
n:分支数量
|
||||
注意:每个节点都需要加终端电阻,星形的中心不得加任何电阻!
|
||||
4.2.2 使用 CAN 集线器的连接
|
||||
|
||||
如果分支不等长,或者是非常复杂的分支结构,就需要使用 CAN 集线器 CANHub-AS4
|
||||
来进行分支。如图 4.8 所示,使用 CANHub-AS4 可以组合成任意的分支结构。
|
||||
|
||||
图 4.8 CANHub-AS4 分支
|
||||
|
||||
如图 4.9 所示,为集线器与中继器配合使用在煤矿组网的应用。
|
||||
|
||||
17
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
图 4.9 集线器和中继器配合使用
|
||||
|
||||
18
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
5. 参考资料
|
||||
|
||||
[1]周立功著,项目驱动——CAN-bus 现场总线基础教程,第 1 版,北京:北京航空航天出
|
||||
版社,2012,ISBN:7512408218, 9787512408210
|
||||
[2]蔡豪格(德)著,周立功译,现场总线 CANopen 设计与应用,第 1 版,北京:北京航空
|
||||
航天出版社,2011,ISBN: 9787512404861, 7512404867
|
||||
|
||||
19
|
||||
CAN-bus ভ/Ҭቖ/҃ཌܿٓ
|
||||
|
||||
۽ӱႋႨг࠺
|
||||
|
||||
6. 免责声明
|
||||
|
||||
应用信息
|
||||
本应用信息中的案例或意图均为假设,仅方便用户熟悉产品的特性以及使用方法。客户
|
||||
|
||||
在开发产品前必须根据其产品特性给予修改并验证。
|
||||
修改文档的权利
|
||||
|
||||
本手册所陈述的产品文本及相关软件版权均属广州致远电子股份有限公司所有,其产权
|
||||
受国家法律绝对保护,未经本公司授权,其它公司、单位、代理商及个人不得非法使用和
|
||||
拷贝,否则将受到国家法律的严厉制裁。广州致远电子股份有限公司保留在任何时候修订本
|
||||
用户手册且不需通知的权利。
|
||||
|
||||
您若需要我公司产品及相关信息,请及时与我们联系,我们将热情接待。
|
||||
|
||||
20
|
||||
|
After Width: | Height: | Size: 236 KiB |
After Width: | Height: | Size: 222 KiB |
After Width: | Height: | Size: 233 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 51 KiB |
|
@ -0,0 +1,19 @@
|
|||
function T = dh2Tmat(theta,d,a,alpha)
|
||||
sin_th = sin(theta);
|
||||
cos_th = cos(theta);
|
||||
sin_al = sin(alpha);
|
||||
cos_al = cos(alpha);
|
||||
|
||||
% T = [cos_th -sin_th 0 a;
|
||||
% sin_th*cos_al cos_th*cos_al -sin_al -sin_al*d;
|
||||
% sin_th*sin_al cos_th*sin_al cos_al cos_al*d;
|
||||
% 0 0 0 1;
|
||||
% ];
|
||||
|
||||
T = [cos_th, -sin_th*cos_al, sin_th*sin_al, a*cos_th;
|
||||
sin_th, cos_th*cos_al, -cos_th*sin_al, a*sin_th;
|
||||
0, sin_al, cos_al, d;
|
||||
0, 0 , 0 , 1;
|
||||
];
|
||||
end
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
clear;
|
||||
clc;
|
||||
|
||||
L1=0.151;L3=0.350; L4=0.139;
|
||||
|
||||
theta_1=-0.02;
|
||||
theta_2=-1.473;
|
||||
theta_3=-0.024;
|
||||
theta_4=-1.559;
|
||||
theta_5=-2.98966;
|
||||
|
||||
q = [theta_1,theta_2,theta_3,theta_4,theta_5]
|
||||
|
||||
|
||||
%定义关节角度限制
|
||||
lim1_min = -pi/2; lim1_max = pi/2; %关节1(-90,90)
|
||||
lim2_min = -pi/2; lim2_max = pi/2; %关节2(0,90)
|
||||
lim3_min = -pi; lim3_max = pi; %关节4(-180,180)
|
||||
lim4_min = -pi; lim4_max = pi; %关节5(-180,180)
|
||||
lim5_min = -pi/2; lim5_max = pi/2; %关节6(-90,90)
|
||||
|
||||
|
||||
%定义关节旋转范围
|
||||
lim1 = lim1_max - lim1_min;
|
||||
lim2 = lim2_max - lim2_min;
|
||||
lim3 = lim3_max - lim3_min;
|
||||
lim4 = lim4_max - lim4_min;
|
||||
lim5 = lim5_max - lim5_min;
|
||||
|
||||
%定义关节
|
||||
r(1)=Link([0 L1 0 pi/2]);r(1).qlim=[lim1_min,lim1_max];
|
||||
r(2)=Link([0 0 L3 pi/2]);r(2).qlim=[lim2_min,lim2_max];
|
||||
r(3)=Link([0 0 0 -pi/2]);r(3).qlim=[lim3_min,lim3_max];
|
||||
r(4)=Link([0 0 0 pi/2]);r(4).qlim=[lim4_min,lim4_max];
|
||||
r(5)=Link([0 L4 0 0]);r(5).qlim=[lim5_min,lim5_max];
|
||||
|
||||
%组合关节
|
||||
robot=SerialLink([r(1),r(2),r(3),r(4),r(5)],'name','robot');
|
||||
robot.fkine(q)
|
||||
|
||||
robot.display();
|
||||
|
||||
%
|
||||
%使用蒙特卡洛法绘制机械臂的工作空间
|
||||
N=5000;
|
||||
theta1 = ( lim1_min + (lim1 * rand(N,1)) );
|
||||
theta2 = ( lim2_min + (lim2 * rand(N,1)) );
|
||||
theta3 = ( lim3_min + (lim3 * rand(N,1)) );
|
||||
theta4 = ( lim4_min + (lim4 * rand(N,1)) );
|
||||
theta5 = ( lim5_min + (lim5 * rand(N,1)) );
|
||||
|
||||
% for n = 1:N
|
||||
% theta = [theta1(n),theta2(n),theta3(n),theta4(n),theta5(n)];
|
||||
% workspace = robot.fkine(theta);
|
||||
% plot3(workspace.t(1),workspace.t(2),workspace.t(3),'b.','markersize',1);
|
||||
% hold on;
|
||||
% end
|
||||
% robot.plot(theta); %动画显示
|
||||
|
||||
robot.teach;
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
function T = myFk(theta1,theta2,theta3,theta4,theta5)
|
||||
L1=0.151;L3=0.350; L4=0.139;
|
||||
T01 = dh2Tmat(theta1,L1,0,pi/2);
|
||||
T12 = dh2Tmat(theta2,0,0,pi/2);
|
||||
T23 = dh2Tmat(theta3,L3,0,-pi/2);
|
||||
T34 = dh2Tmat(theta4,0,0,pi/2);
|
||||
T45 = dh2Tmat(theta5,L4,0,0);
|
||||
|
||||
T = T01*T12*T23*T34*T45;
|
||||
end
|
|
@ -0,0 +1,40 @@
|
|||
T05 = myFk(0.001,-0.653+pi/2,-0.22,0.001,pi/2);
|
||||
|
||||
L1=0.151;L3=0.350; L4=0.139;
|
||||
Pe = T05(1:3,4);
|
||||
Ze = T05(1:3,3);
|
||||
|
||||
%求解W点(球形腕)
|
||||
Pw = Pe - L4*Ze;
|
||||
|
||||
%求解theta1
|
||||
theta_1 = atan2(Pw(2),Pw(1));
|
||||
|
||||
%求解theta2
|
||||
%L1^2 + L3^2 - 2*L1*L3*cos_th2 = norm(Pw)^2
|
||||
cos_th2 = (L1^2 + L3^2 - norm(Pw)^2)/(2*L1*L3);
|
||||
theta_2 = acos(cos_th2);
|
||||
|
||||
%计算T02
|
||||
T01 = dh2Tmat(theta_1,L1,0,pi/2); %连杆1
|
||||
T12 = dh2Tmat(theta_2,0,0,pi/2); %连杆2
|
||||
T02 = T01*T12;
|
||||
|
||||
%计算T25 T05 = T02 * T25
|
||||
T = inv(T02) * T05;
|
||||
%T25_f = dh2Tmat(0,0.5,0,-pi/2)*dh2Tmat(pi/4,0,0,pi/2)*dh2Tmat(0,0.3,0,0);
|
||||
|
||||
%腕关节(theta_5)朝上
|
||||
theta_3 = atan2(T(2,3),T(1,3));
|
||||
theta_4 = atan2(sqrt(T(1,3)^2+T(2,3)^2),T(3,3));
|
||||
theta_5 = atan2(T(3,2),-T(3,1));
|
||||
|
||||
%腕关节(theta_5)朝下
|
||||
theta_33 = atan2(-T(2,3),-T(1,3));
|
||||
theta_44 = atan2(-sqrt(T(1,3)^2+T(2,3)^2),T(3,3));
|
||||
theta_55 = atan2(-T(3,2),T(3,1));
|
||||
|
||||
theta = [theta_1,theta_2,theta_3,theta_4,theta_5;
|
||||
theta_1,theta_2,theta_33,theta_44,theta_55;]
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# 24赛季工程机器人代码笔记
|
||||
24赛季工程机器人代码为`basic_framework`框架下,C/C++混编,主要目的为使用上海交通大学开源的嵌入式机器人学运算库 [SJTU-RoboMaster-Team/Matrix_and_Robotics_on_STM32](https://github.com/SJTU-RoboMaster-Team/Matrix_and_Robotics_on_STM32)
|
||||
|
||||
## 混合编译注意事项
|
||||
机械臂解算相关代码放在了`gimbal.cpp`中,代码中使用了C++特性的源文件都需要以`.cpp`结尾
|
||||
|
||||
如果希望`.c`文件能够调用`.cpp`文件提供的函数,则需要在`.cpp`文件对应的头文件中加入`extern "C" {}`关键字
|
||||
|
||||
如`gimbal.h`
|
||||
``` C
|
||||
#ifndef GIMBAL_H
|
||||
#define GIMBAL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/**
|
||||
* @brief 初始化云台,会被RobotInit()调用
|
||||
*
|
||||
*/
|
||||
void GimbalInit();
|
||||
|
||||
/**
|
||||
* @brief 云台任务
|
||||
*
|
||||
*/
|
||||
void GimbalTask();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // GIMBAL_H
|
||||
```
|
||||
## 达妙电机相关
|
||||
湖大开源`basic_framework`框架的达妙驱动为每个达妙电机单独创建了一个任务,但赛场测试发现这会经常导致某些电机离线,因此新版代码中将所有达妙电机像DJI电机一样在一个任务中控制
|
||||
|
||||
### ID设置规范
|
||||
![alt text](figure/CANid.jpg)
|
||||
![alt text](figure/CANid设置.jpg)
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
# 机器人学基础及机械臂解算
|
||||
|
||||
copyright@合肥工业大学苍穹竞技机器人队
|
||||
|
||||
## 1 机器人学基础
|
||||
### 1.1 向量叉乘
|
||||
向量叉乘满足右手定则,如图所示
|
||||
![alt text](figure/叉乘.png)
|
||||
|
||||
注意叉乘有前后顺序, $a\times b=-b\times a$
|
||||
|
||||
向量叉乘可以被表示为一个线性关系
|
||||
$$
|
||||
a\times b = \left[\begin{matrix}
|
||||
a_2b_3 - a_3b_2 \\
|
||||
a_3b_1 - a_1b_3 \\
|
||||
a_1b_2 - a_2b_1
|
||||
\end{matrix}\right] = \left[\begin{matrix}
|
||||
0 & -a_3 & a_2 \\
|
||||
a_3 & 0 &-a_1 \\
|
||||
-a_2 & a_1 & 0
|
||||
\end{matrix}\right]b = [a]b
|
||||
$$
|
||||
每个三维向量 $a$ 都对应一个三维的反对称矩阵 $[a]$
|
||||
$$
|
||||
[a] = -[a]^T
|
||||
$$
|
||||
|
||||
### 1.2 旋转矩阵
|
||||
一般规定所有坐标系为右手系,即坐标系的三个正交基向量(三个轴) $\hat x,\hat y,\hat z$ 满足
|
||||
$$
|
||||
\hat x \times \hat y = \hat z
|
||||
$$
|
||||
![alt text](figure/rotate.png)
|
||||
|
||||
将坐标系 $\{A\}$ 旋转到坐标系 $\{B\}$ 的位置,可以由旋转矩阵 $R$ 表示
|
||||
$$
|
||||
^AR_B = \begin{bmatrix}
|
||||
{^A\hat x_B} & {^A\hat y_B} & {^A\hat z_B}
|
||||
\end{bmatrix}
|
||||
$$
|
||||
|
||||
${^A\hat x_B}$ 表示向量 $\hat x_B$ 在坐标系 $\{A\}$ 下的坐标
|
||||
|
||||
旋转矩阵的一些性质:
|
||||
- $R^TR=I$
|
||||
- $\det(R)=1$
|
||||
- $SO(n) = \left\{R\in\R^{n\times n}:R^TR = I,\det(R) = 1\right\}$
|
||||
|
||||
|
||||
旋转矩阵的物理意义:
|
||||
|
||||
1. 表示一个旋转姿态(定义)
|
||||
2. 在两个参考坐标系之间转换:
|
||||
如有一向量$v$,在坐标系 $\{A\}$ 和坐标系 $\{B\}$ 下的坐标为 $^Av,{^Bv}$
|
||||
$$
|
||||
^Av = {^AR_B}{^Bv}
|
||||
$$
|
||||
3. 表示一个旋转动作:将A点旋转至A'点
|
||||
$$
|
||||
{^OR_{A'}} = R{^OR_A}
|
||||
$$
|
||||
> 左乘,绕着固定轴旋转;右乘,绕着旋转后的轴旋转 (证明较复杂先记住结论)
|
||||
|
||||
### 1.3 其他表示旋转的方法
|
||||
#### 欧拉角
|
||||
如旋转顺序为ZYZ的欧拉角,依次绕着上次旋转后的轴进行旋转
|
||||
![alt text](figure\eular_angle.png)
|
||||
$$
|
||||
^0R_1(\alpha ,\beta,\gamma) = R_z(\alpha)R_y(\beta)R_z(\gamma)
|
||||
$$
|
||||
|
||||
ZYX欧拉角,等价与绕定轴旋转的RPY角(roll-pitch-yaw)
|
||||
$$
|
||||
^0R_1(\text{yaw,pitch,roll}) = R_z(\text{yaw})R_y(\text{pitch})R_x(\text{roll})
|
||||
$$
|
||||
### 1.4 变换矩阵
|
||||
在三维世界中,不仅有旋转动作,还有平移动作,想要完全描述坐标系 $\{A\}$ 和坐标系 $\{B\}$ 的位姿关系,需要旋转矩阵 $^AR_B$ 和 坐标系 $\{B\}$ 的原点在坐标系 $\{A\}$ 中的坐标 $^Ao_B$
|
||||
|
||||
对于点 $p$ ,有
|
||||
$$
|
||||
^Ap = {^Ao_B} +{^AR_B}{^Bp}
|
||||
$$
|
||||
|
||||
为了将其描述为线性关系,我们将 $p\in \R^3$ 扩展为齐次坐标
|
||||
$$
|
||||
\tilde{p} = \begin{bmatrix}
|
||||
p \\ 1
|
||||
\end{bmatrix} \in \R^4
|
||||
$$
|
||||
> 对于点,齐次坐标添加1;对于向量,齐次坐标添加0、
|
||||
|
||||
定义从坐标系 $\{A\}$ 到坐标系 $\{B\}$ 的变换矩阵
|
||||
$$
|
||||
^AT_B = \begin{bmatrix}
|
||||
{^AR_B} & {^Ao_B} \\
|
||||
0 & 1
|
||||
\end{bmatrix}
|
||||
$$
|
||||
|
||||
$$
|
||||
^A\tilde{p} = {^AT_B}{^B\tilde{p}}
|
||||
$$
|
||||
|
||||
## 2 机械臂运动学
|
||||
### 1.1 正运动学 DH参数法
|
||||
- 连杆——link
|
||||
- 关节——jiont
|
||||
- 通过每个link的DH参数,可以仅通过关节变量求得相邻两jiont之间的齐次变换矩阵
|
||||
|
||||
![alt text](figure/DH.png)
|
||||
|
||||
对每个jiont建立坐标系,指定 $z_i$ 为旋转/平移关节的旋转轴/平动轴;$x_i$ 为 $z_i$ 和 $z_{i-1}$ 的公垂线且与 $z_{i-1}$ 相交,方向由 $z_{i-1}$ 指向 $z_{i}$ ;$y_i$ 遵循右手系规则
|
||||
|
||||
DH参数共有四个:
|
||||
|
||||
1. 连杆长度 $a_i$ : 沿 $x_i$ 方向, $z_i$ 和 $z_{i-1}$间的距离
|
||||
2. 连杆扭转 $\alpha_i$ : $z_i$ 轴和 $z_{i-1}$ 轴的夹角,正方向如图所示,由 $z_{i-1}$ 指向 $z_i$ 轴;
|
||||
3. 关节偏移 $d_i$ : 沿着 $z_{i-1}$ ,点 $o_{i-1}$ 到 $x_i$ 和 $z_{i-1}$ 交点的距离
|
||||
4. 关节转角 $\theta_i$ : $x_i$ 轴和 $x_{i-1}$ 轴的夹角,正方向如图所示,由 $x_{i-1}$ 指向 $x_i$ 轴;
|
||||
|
||||
> 对于平动关节来说,$d_i$ 为关节变量,其他为常数
|
||||
|
||||
> 对于转动关节来说,$\theta_i$ 为关节变量,其他为常数
|
||||
>
|
||||
|
||||
得到每个关节的DH参数后,可通过计算得到相邻两关节的齐次变换矩阵
|
||||
$$
|
||||
^{i-1}T_i = Rot_{z,\theta}Trans_{z,d}Trans_{x,a}Rot_{x,a} = \begin{bmatrix}
|
||||
c_\theta & -s_\theta c_\alpha & s_\theta s_\alpha & ac_\theta \\
|
||||
s_\theta & c_\theta c_\alpha & -c_\theta s_\alpha & as_\theta \\
|
||||
0 & s_\alpha & c_\alpha & d \\
|
||||
0 & 0 & 0 & 1
|
||||
\end{bmatrix}
|
||||
$$
|
||||
> 式中 $c_\theta = \cos \theta$ , $s_\theta = \sin \theta$
|
||||
|
||||
将每个关节之间的变换矩阵相乘即可得到从基座坐标系到工具坐标系之间的变换矩阵
|
||||
$$
|
||||
^0T_n = {^0T_1}{^1T_2}{^2T_3}\cdots{^{n-1}T_n}
|
||||
$$
|
||||
|
||||
### 2.2 逆运动学
|
||||
逆运动学可分为数值迭代法和解析法,一般为了保证能求出解以及实时性,采用几何解析解法。
|
||||
> 在机械臂结构设计时需要满足一定结构规范,才能保证能够求得解析解
|
||||
>
|
||||
#### 2.2.1 标准正交球形腕逆运动学
|
||||
在大多数六轴机械臂的最后三轴,都会采用球形腕(Spherical Wrist)结构来保证能够达到工作空间中的所有姿态(如苍穹战队RM2024赛季工程机器人机械臂末端)
|
||||
|
||||
![alt text](figure/Spherica_Wrist.png)
|
||||
|
||||
设现在需要的第三关节到第六关节间的旋转矩阵为
|
||||
$$
|
||||
^3R_6 = \begin{bmatrix}
|
||||
n_x & s_x & a_x \\
|
||||
n_y & s_y & a_y \\
|
||||
n_z & s_z & a_z
|
||||
\end{bmatrix}
|
||||
$$
|
||||
|
||||
有两组解:
|
||||
|
||||
当 $\theta_5\in(0,\pi)$
|
||||
$$
|
||||
\theta_4 = Atan2(a_y,a_x) \\
|
||||
\theta_5 = Atan2(\sqrt{{a_x}^2+{a_y}^2},a_z) \\
|
||||
\theta_6 = Atan2(s_z,-n_z) \\
|
||||
$$
|
||||
|
||||
当 $\theta_5\in(-\pi,0)$
|
||||
$$
|
||||
\theta_4 = Atan2(-a_y,-a_x) \\
|
||||
\theta_5 = Atan2(-\sqrt{{a_x}^2+{a_y}^2},a_z) \\
|
||||
\theta_6 = Atan2(-s_z,n_z) \\
|
||||
$$
|
||||
|
||||
证明过程见[Modeling, Motion Planning, and Control of Manipulators and Mobile Robots——Inverse Kinematics](https://opentextbooks.clemson.edu/wangrobotics/chapter/inverse-kinematics/)(链接中有完整的六轴机械臂解算方法)
|
||||
|
||||
## 3 机械臂动力学
|
||||
24赛季未考虑机械臂动力学,使用PID+前馈方式对每个关节进行单独控制,若机械臂结构更复杂则需要考虑动力学补偿,为后续迭代方向,我有空更新
|
||||
|
||||
## 4 仿真验证
|
||||
可以使用MATLAB Robotic toolbox 进行仿真验证,仿真验证相关代码放在`matlab`文件夹
|
||||
|
||||
|
||||
|
||||
# 参考文献
|
||||
[Modeling, Motion Planning, and Control of Manipulators and Mobile Robots](https://opentextbooks.clemson.edu/wangrobotics)
|
||||
|
||||
[SUSTech MEE5114 Advanced Control For Robotics](https://www.wzhanglab.site/teaching/advanced-control-for-robotics-sp23/)
|
|
@ -0,0 +1,121 @@
|
|||
机器人学基础及机械臂解算
|
||||
|
||||
copyright@合肥工业大学苍穹竞技机器人队
|
||||
|
||||
1 机器人学基础
|
||||
|
||||
1.1 向量叉乘
|
||||
|
||||
向量叉乘满足右手定则,如图所示
|
||||
|
||||
注意叉乘有前后顺序,
|
||||
向量叉乘可以被表示为一个线性关系
|
||||
|
||||
每个三维向量 都对应一个三维的反对称矩阵
|
||||
|
||||
1.2 旋转矩阵
|
||||
|
||||
一般规定所有坐标系为右手系,即坐标系的三个正交基向量(三个轴) 满足
|
||||
将坐标系 旋转到坐标系 的位置,可以由旋转矩阵 表示
|
||||
|
||||
表示向量 在坐标系 下的坐标
|
||||
旋转矩阵的一些性质:
|
||||
|
||||
旋转矩阵的物理意义:
|
||||
|
||||
1. 表示一个旋转姿态(定义)
|
||||
|
||||
2. 在两个参考坐标系之间转换:
|
||||
|
||||
如有一向量 ,在坐标系 和坐标系 下的坐标为
|
||||
|
||||
3. 表示一个旋转动作:将A点旋转至A'点
|
||||
|
||||
左乘,绕着固定轴旋转;右乘,绕着旋转后的轴旋转 (证明较复杂先记住结论)
|
||||
|
||||
1.3 其他表示旋转的方法
|
||||
|
||||
欧拉角
|
||||
|
||||
如旋转顺序为ZYZ的欧拉角,依次绕着上次旋转后的轴进行旋转
|
||||
|
||||
ZYX欧拉角,等价与绕定轴旋转的RPY角(roll-pitch-yaw)
|
||||
|
||||
1.4 变换矩阵
|
||||
|
||||
在三维世界中,不仅有旋转动作,还有平移动作,想要完全描述坐标系 和坐标系 的位姿关
|
||||
|
||||
系,需要旋转矩阵 和 坐标系 的原点在坐标系 中的坐标
|
||||
|
||||
对于点 ,有
|
||||
|
||||
为了将其描述为线性关系,我们将 扩展为齐次坐标
|
||||
|
||||
对于点,齐次坐标添加1;对于向量,齐次坐标添加0、
|
||||
|
||||
定义从坐标系 到坐标系 的变换矩阵
|
||||
|
||||
2 机械臂运动学
|
||||
|
||||
1.1 正运动学 DH参数法
|
||||
|
||||
连杆——link
|
||||
关节——jiont
|
||||
通过每个link的DH参数,可以仅通过关节变量求得相邻两jiont之间的齐次变换矩阵
|
||||
对每个jiont建立坐标系,指定 为旋转/平移关节的旋转轴/平动轴; 为 和 的公垂线且与
|
||||
|
||||
相交,方向由 指向 ; 遵循右手系规则
|
||||
|
||||
DH参数共有四个:
|
||||
|
||||
1. 连杆长度 : 沿 方向, 和 间的距离
|
||||
2. 连杆扭转
|
||||
3. 关节偏移 : 轴和 轴的夹角,正方向如图所示,由 指向 轴;
|
||||
4. 关节转角 指向 轴;
|
||||
: 沿着 ,点 到和 交点的距离
|
||||
|
||||
: 轴和 轴的夹角,正方向如图所示,由
|
||||
|
||||
对于平动关节来说, 为关节变量,其他为常数
|
||||
|
||||
对于转动关节来说, 为关节变量,其他为常数
|
||||
|
||||
得到每个关节的DH参数后,可通过计算得到相邻两关节的齐次变换矩阵
|
||||
|
||||
式中 ,
|
||||
|
||||
将每个关节之间的变换矩阵相乘即可得到从基座坐标系到工具坐标系之间的变换矩阵
|
||||
|
||||
2.2 逆运动学
|
||||
|
||||
逆运动学可分为数值迭代法和解析法,一般为了保证能求出解以及实时性,采用几何解析解法。
|
||||
在机械臂结构设计时需要满足一定结构规范,才能保证能够求得解析解
|
||||
|
||||
2.2.1 标准正交球形腕逆运动学
|
||||
|
||||
在大多数六轴机械臂的最后三轴,都会采用球形腕(Spherical Wrist)结构来保证能够达到工作空间中
|
||||
的所有姿态(如苍穹战队RM2024赛季工程机器人机械臂末端)
|
||||
|
||||
设现在需要的第三关节到第六关节间的旋转矩阵为
|
||||
有两组解:
|
||||
当
|
||||
|
||||
当
|
||||
|
||||
证明过程见Modeling, Motion Planning, and Control of Manipulators and Mobile Robots——Inverse
|
||||
Kinematics(链接中有完整的六轴机械臂解算方法)
|
||||
|
||||
3 机械臂动力学
|
||||
|
||||
24赛季未考虑机械臂动力学,使用PID+前馈方式对每个关节进行单独控制,若机械臂结构更复杂则需要
|
||||
考虑动力学补偿,为后续迭代方向,我有空更新
|
||||
|
||||
4 仿真验证
|
||||
|
||||
可以使用MATLAB Robotic toolbox 进行仿真验证,仿真验证相关代码放在 matlab 文件夹
|
||||
|
||||
参考文献
|
||||
|
||||
Modeling, Motion Planning, and Control of Manipulators and Mobile Robots
|
||||
SUSTech MEE5114 Advanced Control For Robotics
|
||||
|