Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Дамжуулагчийн хэлхээ
- Алхам 2: CAN автобус руу унших, бичих
- Алхам 3: Зангилаа холбох
- Алхам 4: ПХБ хийх
- Алхам 5: Удирдах зөвлөлийг өргөжүүлэх
- Алхам 6: ПХБ -ээ JLCPCB -ээс захиалаарай
- Алхам 7: Самбараа аваарай
Видео: STM32 CAN интерфэйс: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Controller Area Network bus буюу CAN автобус нь өндөр хурдны чадвар, урт хугацааны найдвартай байдал, дуу чимээний дархлааны ачаар маш үр дүнтэй харилцааны протокол юм. Эдгээр шалтгааны улмаас CAN холбоо нь автомашины технологи, дуу чимээ ихтэй орчинд стандарт болсон. CAN автобус дээрх төхөөрөмжийг зангилаа гэж нэрлэдэг. CAN автобусны бүх зангилаа зэрэгцээ холбогдсон бөгөөд энэ нь зангилаа бүр сүлжээнд байгаа бусад бүх зангилаатай холбогдсон гэсэн үг юм. Нэг CAN автобус нь мессеж дамжуулах хурдаас хамааран нэг дор 115 хүртэлх зангилаатай байж болох боловч ихэнх програмын хувьд 32 хүртэлх төхөөрөмжтэй байхыг зөвлөж байна. Түүнчлэн эхний ба сүүлчийн зангилааны хоорондох уртыг 40 метрээс багагүй зайтай байлгахыг зөвлөж байна.
Энэхүү алхам алхмаар заавар нь STM32 микроконтроллер ашиглан CAN зангилааг хэрхэн тохируулахыг харуулах болно, үүнд хэлхээ болон CAN автобусанд унших, бичих энгийн С код орно.
Хангамж
CAN зангилаа бүрийн хувьд:
- 1x STM32 таслах самбар (Nucleo, Blue Pill, бусад)
- 1x MCP2551 CAN дамжуулагч IC
- 1x 0.1μF конденсатор
- 1x 120Ω эсэргүүцэл
- 1x 1kΩ эсэргүүцэл
- 1+ унших боломжтой оролт (товчлуур, унтраалга, потенциометр гэх мэт) эсвэл гаралт (LED, MOSFET гэх мэт)
- 1x Dsub9 холбогч
Алхам 1: Дамжуулагчийн хэлхээ
CAN автобустай холбогдохын тулд бид MCP2551 CAN дамжуулагч IC ашиглана. IC нь STM32 -ийг CAN автобусанд холбох завсрын дамжуулагч/хүлээн авагчийн хос үүрэг гүйцэтгэдэг. Энэхүү IC -ийг тохируулах схем нь маш энгийн боловч анхаарах хэдэн зүйл байна:
-
MCP2551 чип дээрх CAN_RX (зүү 4) ба CAN_TX (зүү 1) нь зөвхөн STM32 дээрх тодорхой зүү рүү очих боломжтой.
- STM32F1 Nucleo дээр RX шугамыг PB8, TX шугамыг PB9 зүүтэй холбоно уу.
- STM32F1 цэнхэр эм дээр RX -ийг PA11, TX -ийг PA12 зүү рүү холбоно уу.
- Эдгээр зүү даалгавар нь өөр хувилбартай болохыг анхаарна уу. Аль тээглүүр нь CAN_RD болон CAN_TD -тэй болохыг тодорхойлохын тулд микроконтроллерийн гарын авлагаас үзнэ үү.
- Хэрэв Arduino эсвэл CAN холбогчгүй самбар ашиглаж байгаа бол MCP2515 IC чип нь бусад мессежийн протоколыг CAN болгон хөрвүүлэх шаардлагатай болно.
- CANL зүү нь бусад автобусны зангилааны бусад CANL тээглүүртэй холбогдсон байх ёстой. CANH тээглүүрийн хувьд ч мөн адил.
- CANH ба CANL тээглүүр дээрх 120Ω эсэргүүцэл нь зөвхөн зангилаа нь терминал зангилаа бол шаардлагатай. Энэ нь зэрэгцээ холболтын утаснуудын төгсгөлд байна гэсэн үг юм. Өөрөөр хэлбэл, CAN автобусанд зөвхөн хоёр 120Ω эсэргүүцэл байх ёстой бөгөөд тэдгээр нь бие биенээсээ аль болох хол байх ёстой.
- Эцэст нь RS дээрх 1 кОм эсэргүүцэл (зүү 8) -ийг CAN мессежийн битийн өсөлт/бууралтын хугацааг хянахын тулд 10 кОм эсэргүүцэлтэй сольж болно. Дэлгэрэнгүй мэдээллийг MCP2551 чипийн мэдээллийн хуудаснаас авна уу.
Алхам 2: CAN автобус руу унших, бичих
Одоо дамжуулагчийн хэлхээ STM32 -тэй холбогдсон тул бид CAN автобус руу мессеж бичиж эхлэх боломжтой боллоо. Энэхүү зааварчилгааны гарын авлага нь STM32 кодыг нарийвчлан судлахгүй. Гэсэн хэдий ч жишээг эндээс манай кодыг шалгаж үзээрэй. STM32 -ийг CAN зангилаа болгон ашиглахад CAN толгой файл шаардлагатай болно. Бид өөрсдийн бичсэн бөгөөд үүнийг манай github дээрээс олж болно. Энд бид унших/бичих үйл явцын товч тоймыг өгөх болно.
CAN автобуснаас уншихын тулд бид эхлээд CAN зурвасын ID -г мэдэх хэрэгтэй. Зурвас бүр өвөрмөц ID -тай байх ёстой бөгөөд доод үнэмлэх нь илүү өндөр ач холбогдолтой байдаг. Энд үзүүлсэн кодын хэсэг нь 0x622 ID бүхий CAN мессежийг хүлээж байна. Манай системд хэрэв 6 -р байтын эхний бит өндөр байвал бид A10 зүүг өндөр болгохыг хүсч байна.
CAN мессеж бичихдээ CAN мессеж нь олон байт гэдгийг санах ёстой. Бичсэн мессеж бүр ID, урттай байх ёстой. Үзүүлсэн кодын хоёр дахь хэсэгт бид байт бүрт өгөгдөл бичиж, дараа нь мессеж илгээдэг (ID ба уртын параметрүүдийг кодын өмнө тодорхойлсон болно).
Алхам 3: Зангилаа холбох
Олон CAN зангилааг холбохдоо кабелийн уртыг сайтар анхаарч үзэх хэрэгтэй. Хамгийн алслагдсан хоёр зангилаа нь бие биенээсээ 40 метрийн зайтай байж болно. Автобус руу холбосон дунд зангилаа нь үндсэн автобусны шугамаас 50 см зайд байх ёстой.
CAN холболтууд нь зүү 2 дээрх CANL шугам, pin7 дээрх CANH шугам бүхий Dsub9 холбогчийг ашиглах салбарын стандартыг дагаж мөрддөг. CANGND шугамын сонголт 3 -р зүү дээр явж болно.
Алхам 4: ПХБ хийх
ПХБ дээр CAN дохиог чиглүүлэхдээ CAN бол дифференциал дохио гэдгийг санаарай, ингэснээр CANH ба CANL -ийн чиглүүлэлтийн удирдамжийг анхааралтай дагаж мөрдөх ёстой.
Алхам 5: Удирдах зөвлөлийг өргөжүүлэх
Өөр зангилааг хамтад нь оруулан, зарим оролт/гаралтыг нэмж, бүх CANH ба CANL тээглүүрээ холбоно уу. STM32 эсвэл бусад микроконтроллер бүр өөрийн MCP2551 чип шаарддаг болохыг анхаарна уу; тэдгээрийг хуваалцах боломжгүй.
Үүнтэй холбогдуулан ПХБ -ээ энд үзүүлсэн хэмжээнээс бага байлгахыг хичээгээрэй
Алхам 6: ПХБ -ээ JLCPCB -ээс захиалаарай
JLCPCB нь маш боломжийн үнээр хурдан, чанартай үйлчилгээг санал болгодог. Маш олон хувийн тохиргоотой 5 самбарыг ердөө 2 доллараар аваарай! Хэрэв энэ таны анхны захиалга бол ижил үнээр 10 самбар аваарай!
Гэрүүдээ байршуулаад шууд үнийн санал аваарай! Захиалгаа оруулна уу, таны самбарыг нэг цагийн дотор үйлдвэрлэх эсэхийг хянана. Төлбөр хийсний дараа та өндөр чанартай самбараа 3 хоногийн дотор хүлээж чадна.
Эндээс үзээрэй
Алхам 7: Самбараа аваарай
Энэ төслийг ивээн тэтгэсэн гэж JLCPCB -д маш их хашгирч байна. JLCPCB (ShenzhenJLC Electronics Co., Ltd.) нь Хятад дахь ПХБ-ийн хамгийн том прототипийн үйлдвэр бөгөөд ПХБ-ийн хурдан загварчлах, жижиг хэмжээтэй ПХБ үйлдвэрлэх чиглэлээр мэргэшсэн өндөр технологийн үйлдвэрлэгч юм. Тэд UBC Solar компанид манай нарны эрчим хүчээр ажилладаг уралдааны машинд зориулсан шинэ ПХБ-үүдийг өгөхөд хангалттай сайхан байсан. Бид баасан гаригт захиалгаа өгч, лхагва гаригт самбараа авлаа!
Зөвлөмж болгож буй:
Arduino сансрын хөлгийн интерфэйс: 3 алхам
Arduino сансрын хөлгийн интерфэйс: Сайн байна уу зааварлагчид аа, энэ удаад би Arduino Uno: сансрын хөлгийн хэлхээг ашиглан хийх хамгийн хялбар төслүүдийн нэгийг хийлээ. Шинжлэх ухааны зөгнөлт телевизийн шоу, кинонд ашиглах боломжтой програмчлал, хэлхээний төрөл учраас үүнийг ингэж нэрлэдэг
Raspberry Pi -тай GPS интерфэйс хийх модуль: 10 алхам
Raspberry Pi -тай GPS интерфэйс хийх модуль: Хөөе залуусаа !! Та GPS модулийг Raspberry Pi -тэй холбохыг хүсч байна уу? Гэхдээ үүнийг хийхэд бага зэрэг бэрхшээл тулгарч байна уу? "Санаа зоволтгүй, би танд туслахаар энд байна! Та дараах хэсгүүдийг ашиглан эхлүүлж болно
Raspberry Pi 4B дээрх ADXL335 мэдрэгч интерфэйс 4 алхам: 4 алхам
Raspberry Pi 4B дээрх ADXL335 мэдрэгч интерфэйсийг 4 алхамаар: Энэхүү зааварчилгаанд бид Raspberry Pi 4 дээрх ADXL335 (акселерометр) мэдрэгчийг Shunya O/S -тэй холбох болно
MIDI алхам интерфэйс (хамгийн сүүлийн хувилбар): 12 алхам
MIDI алхам интерфэйс (хувилбарын хувилбар): Заавар, зааварчилгаа нь "Simon Says" гэж нэрлэгддэг MIDI -г ашиглахад маш чухал үүрэг гүйцэтгэдэг. Амбос модо тоглоомууд
MIDI алхам интерфэйс: 12 алхам (зурагтай)
MIDI Step Interface: Испани хувилбар энд байна. Энэхүү зааварчилгаанд бид " Саймон хэлэв " мөн MIDI интерфейс болгон ашигладаг. Энэ хоёр горимыг хөлөөрөө тоглох болно