Мазмуну:

STM32 CAN интерфейси: 7 кадам
STM32 CAN интерфейси: 7 кадам

Video: STM32 CAN интерфейси: 7 кадам

Video: STM32 CAN интерфейси: 7 кадам
Video: STM32 настройка CAN 2024, Ноябрь
Anonim
STM32 CAN интерфейси
STM32 CAN интерфейси

Controller Area Network Bus же CAN Bus - бул жогорку ылдамдыктагы мүмкүнчүлүктөрү, узак аралыкка ишенимдүүлүгү жана ызы -чуу иммунитети аркасында абдан натыйжалуу байланыш протоколу. Ушул себептерден улам, CAN байланышы автомобилдик технологияларда жана жогорку ызы -чуу чөйрөсүндө стандарт болуп калды. CAN автобусундагы түзмөктөр түйүндөр деп аталат. CAN автобусундагы бардык түйүндөр параллель туташкан, башкача айтканда, ар бир түйүн тармактагы башка бардык түйүндөргө туташкан. Бир CAN автобусунда билдирүү берүү ылдамдыгына жараша бир эле учурда 115 түйүн болушу мүмкүн, бирок көпчүлүк тиркемелерде 32 түзмөккө чейин болуу сунушталат. Ошондой эле биринчи жана акыркы түйүндүн ортосундагы аралыкты 40 метрден аз кармоо сунушталат.

Бул этап-этабы менен үйрөткүч сизге STM32 микроконтроллеринин жардамы менен CAN түйүнүн кантип орнотууну көрсөтөт, анын ичинде схема жана CAN автобусуна жазуу үчүн жөнөкөй С коду.

Жабдуулар

Ар бир CAN түйүнү үчүн:

  • 1x STM32 сынык тактасы (Nucleo, Blue Pill, башкалар)
  • 1x MCP2551 БУЛ transceiver IC
  • 1x 0.1µF конденсатор
  • 1x 120Ω каршылыгы
  • 1x 1kΩ каршылыгы
  • 1+ окула турган киргизүү (баскыч, которгуч, потенциометр ж. Б.) Же чыгаруу (LED, MOSFET ж.б.)
  • 1x Dsub9 туташтыргычы

1 -кадам: Transceiver Circuit

Transceiver Circuit
Transceiver Circuit

CAN автобусу менен байланышуу үчүн биз MCP2551 CAN transceiver 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теги 1kΩ каршылыгын (пин 8) CAN билдирүү биттеринин көтөрүлүү/түшүү убактысын көзөмөлдөө үчүн 10kΩ резисторго алмаштырса болот. Көбүрөөк маалымат алуу үчүн MCP2551 чип маалымат барагына кайрылыңыз.

2 -кадам: CAN автобусуна окуу жана жазуу

CAN автобусуна окуу жана жазуу
CAN автобусуна окуу жана жазуу

Эми трансивер схемасы STM32ге туташкандыктан, биз CAN автобусуна билдирүүлөрдү жаза баштайбыз. Бул нускамалуу көрсөтмө STM32 кодуна терең кирбейт. Бирок, бул жерде мисалдар үчүн биздин кодду текшерүүнү унутпаңыз. STM32ди CAN түйүнү катары колдонуу CAN аталыш файлын талап кылат. Биз өзүбүздүн жазганбыз, муну биздин гитубдан тапса болот. Бул жерде биз окуу/жазуу процессине кыскача сереп беребиз.

CAN автобусунан окуу үчүн, адегенде CAN билдирүүсүнүн идентификаторун билишибиз керек. Ар бир билдирүүнүн уникалдуу идентификатору болушу керек, төмөнкү идентификаторлорго артыкчылык берилет. Бул жерде көрсөтүлгөн код үзүндүсү ID 0x622 менен CAN билдирүүсүн күтүп жатат. Биздин системада, эгерде 6 -байттын биринчи бити жогору болсо, анда биз A10 пинин бийик коюуну каалайбыз.

CAN билдирүүсүн жазууда CAN билдирүүлөрү көп байт экенин эстен чыгарбашыбыз керек. Ар бир жазылган билдирүүдө ID жана узундук болушу керек. Көрсөтүлгөн коддун экинчи үзүндүсүндө биз ар бир байтка маалыматтарды жазабыз, анан билдирүү жөнөтөбүз (ID жана узундуктун параметрлери коддо мурда аныкталган).

3 -кадам: түйүндөрдү туташтыруу

Туташуу түйүндөрү
Туташуу түйүндөрү

Бир нече CAN түйүндөрүн туташтырууда кабелдердин узундугуна кылдат көңүл буруу керек. Эң алыскы эки түйүн бири -биринен 40 м аралыкта болушу мүмкүн. Автобуска туташкан ортоңку түйүндөр негизги автобус линияларынан 50см аралыкта болушу керек.

CAN туташуулары Dsub9 туташтыргычын 2 -пин CANL линиясы жана pin7деги CANH линиясы менен колдонуунун тармактык стандартына ылайык келет. Опция CANGND линиясы 3 -пинге өтүшү мүмкүн.

4 -кадам: PCB жасаңыз

ПХБ жасаңыз
ПХБ жасаңыз

ПКБда CAN сигналдарын багыттоодо, CAN дифференциалдык сигнал экенин эстен чыгарбаңыз, андыктан CANH жана CANL үчүн багыттоо көрсөтмөлөрү кылдаттык менен аткарылышы керек.

5 -кадам: Башкарманы кеңейтүү

Башкарманы кеңейтүү
Башкарманы кеңейтүү

Дагы бир нече түйүндөрдү ыргытыңыз, кээ бир кириштерди/чыгууларды кошуңуз жана алардын бардык CANH жана CANL төөнөгүчтөрүн туташтырыңыз. Белгилей кетсек, ар бир STM32 же башка микроконтроллер өзүнүн MCP2551 чипин талап кылат; алар бөлүшө албайт.

Муну менен, сиздин ПХБларыңызды бул жерде көрсөтүлгөндөн кичине сактоого аракет кылыңыз

6 -кадам: JLCPCBден ПКБларыңызды заказ кылыңыз

JLCPCBден ПКБларыңызды заказ кылыңыз
JLCPCBден ПКБларыңызды заказ кылыңыз

JLCPCB абдан ылайыктуу баада тез, сапаттуу кызматты сунуштайт. Тонналаштыруу менен каалаган түстөгү 5 тактаны 2 долларга гана алыңыз! Ал эми бул биринчи заказ болсо, ошол эле баада 10 такта алыңыз!

Жөн гана герберлериңизди жүктөп, дароо бааны алыңыз! Буйрутмаңызды тапшырыңыз жана такталарыңыз бир сааттын ичинде өндүрүш үчүн каралат. Төлөгөндөн кийин, сиз үч күндүн ичинде жогорку сапаттагы такталарыңызды күтө аласыз!

Бул жерден текшерип көрүңүз

7 -кадам: Тактаңызды алыңыз

Тактаңызды алыңыз!
Тактаңызды алыңыз!

Бул долбоорду каржылоо үчүн JLCPCBге чоң кыйкырык. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), Кытайдагы эң чоң PCB прототип ишканасы жана ПКБнын тез прототиптөөсүнө жана чакан партиялуу PCB өндүрүшүнө адистешкен жогорку технологиялуу өндүрүүчү. Алар UBC Solar компаниясына күн энергиясы менен иштеген жарыш унаабыз үчүн жаңы ПХБ менен камсыз кылуу үчүн жетиштүү боорукер болушту. Биз заказды жума күнү койдук жана шаршемби күнү такталарды алдык!

Сунушталууда: