0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一個(gè)超棒的stm32的開(kāi)源usb-can項(xiàng)目

玩轉(zhuǎn)單片機(jī)與嵌入式 ? 來(lái)源:玩轉(zhuǎn)單片機(jī)與嵌入式 ? 2023-06-06 09:57 ? 次閱讀

照理來(lái)說(shuō),USB-CAN這種東西應(yīng)該已經(jīng)被做的爛大街的工具,國(guó)內(nèi)居然沒(méi)有一個(gè)拿得出手的開(kāi)源方案。某立功和PCAN動(dòng)輒2000+的價(jià)格也是離譜。淘寶上各種虛擬串口方案、替換dll兼容某立功軟件的各種方案....價(jià)格都倒是便宜,性能和可靠性嘛.......就不多說(shuō)了,上位機(jī)軟件也是爛的一塌糊涂。

這里推薦一個(gè)國(guó)外的炒雞好用的開(kāi)源工具CANable,ta有完全開(kāi)源的軟硬件及上位機(jī)支持,支持windos和linux Stock can并且都免驅(qū),且支持Python

而且遠(yuǎn)不止于此,經(jīng)過(guò)我不斷探索,在gitlhub各個(gè)大神倉(cāng)庫(kù)各種折騰。
我發(fā)現(xiàn)這個(gè)canable這個(gè)項(xiàng)目衍生出了很多開(kāi)源固件,目前固件和支持的軟件已經(jīng)極為豐富。

而且主芯片STM32F042/72支持USB DFU,可以通過(guò)USB直接更新固件,無(wú)縫切換多種上位機(jī)。

先上項(xiàng)目首頁(yè),canbale項(xiàng)目官網(wǎng):

https://canable.io/

首先先看硬件項(xiàng)目

硬件項(xiàng)目其實(shí)叫做candleLight,github鏈接:

https://github.com/HubertD/candleLight] https://github.com/HubertD/candleLight

這個(gè)不帶隔離的硬件設(shè)計(jì)是比較簡(jiǎn)單的,就是一塊帶usb和can的stm32f0 + CAN收發(fā)器TJA1051/3。

可惜的就是這顆stm32f0芯片現(xiàn)在價(jià)格漲得有點(diǎn)離譜了,之前在JLC打樣做了幾塊,主芯片就去到40多大洋,加上pcb和smt,打樣成本差不多投到100左右吧。

后來(lái)發(fā)現(xiàn)某寶上已經(jīng)有商家把canable作出產(chǎn)品了,帶隔離的價(jià)格也才100多,還帶外殼配件,果斷買了一個(gè)試試,某寶搜“開(kāi)源 canable”就能找到,早知道就不用費(fèi)勁自己打板了。

但是某寶上買的只提供了默認(rèn)固件的相關(guān)資料,經(jīng)過(guò)我不斷探索,在gitlhub各個(gè)大神倉(cāng)庫(kù)各種折騰。

我發(fā)現(xiàn)這個(gè)canable這個(gè)項(xiàng)目衍生出了很多開(kāi)源固件,目前固件和支持的軟件已經(jīng)極為豐富,可以說(shuō)可玩性極高。我甚至懷疑很多某寶和咸魚(yú)上的山寨PCAN就是canable換了一個(gè)殼子和固件而已?。。?/p>

poYBAGEAKNmAUrAMAACsbe8zoNY082.png
pdf原理圖:

https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf

重點(diǎn)還是固件,第一個(gè)先說(shuō)重磅的,PCAN固件

論壇已經(jīng)有人分享了,還是這個(gè)鏈接:

https://github.com/moonglow/pcan_cantact

我會(huì)在附件里打包我編譯好的代碼和二進(jìn)制文件可以直接USB燒寫(xiě)

燒寫(xiě)PCAN固件之后,CANable搖身一變就成了PEAK CAN-USB,直接可以使用PEAK的官方驅(qū)動(dòng)以及軟件(pcan-view/ pcan-explorer 5),甚至基于peak開(kāi)發(fā)的其他二次開(kāi)發(fā)軟件(比如國(guó)內(nèi)的一些新能源車上位機(jī),奇瑞,北汽這些)。

目前使用下來(lái)和原裝PCAN的兼容性還是相當(dāng)不錯(cuò)的,但是注意不要用于ECU/PLC程序刷新,程序下載到到中途會(huì)出錯(cuò),這個(gè)問(wèn)題還需要進(jìn)一步優(yōu)化。但是想想原裝PCAN動(dòng)輒2000的價(jià)格,100多塊錢的canable加上這個(gè)PCAN固件是真的香啊。

poYBAGEAKN6ASzlkAABbJDzk7_Y971.png
poYBAGEAKOKANf6sAACJ_EQAXCY708.png
poYBAGEAKOeAB_rXAAGZLY6Bd3Y979.png

介紹第二個(gè)固件是canable的默認(rèn)固件candleLight_fw
https://github.com/candle-usb/candleLight_fw

這個(gè)固件功能也蠻強(qiáng)大,采用的winUSB的免驅(qū)方案,USB bulk雙緩沖的模式,實(shí)際傳輸性能遠(yuǎn)超那些虛擬串口的USB-CAN。

支持windos和linux Stock can并且都免驅(qū),且支持Python。
linux下使用和PCAN一樣都是內(nèi)核自帶驅(qū)動(dòng),支持SocketCAN 非常適合用一些開(kāi)源的can的工具和庫(kù)進(jìn)行二次開(kāi)發(fā)。

candleLight固件的圖形化上位機(jī)叫做cangaroo。
cangaroo是candleLight固件專用的、簡(jiǎn)單易用的can總線調(diào)試軟件,麻雀雖小五臟俱全,對(duì)于一般的can調(diào)試開(kāi)發(fā)完全夠用,而且專門針對(duì)汽車逆向工程增加了通過(guò)can id分類接收到的can數(shù)據(jù)幀,并且當(dāng)某個(gè)id的數(shù)據(jù)幀活躍時(shí)會(huì)進(jìn)行高亮顯示以便于觀察分析。

pYYBAGEAKOuAL5D7AALmeKWZ8Is803.png
支持Windos/Linux (Ubuntu發(fā)行版本)
最大支持同時(shí)接入32個(gè)CANable模塊
數(shù)據(jù)幀時(shí)間戳
支持?jǐn)?shù)據(jù)日志保存
支持CAN DBC 文件協(xié)議解析
軟件綠色免安裝

candleLight固件還支持BUSMASTER(這個(gè)也就很厲害了,用過(guò)的都懂),BUSMASTER是一款功能強(qiáng)大的專業(yè)級(jí)CAN總線調(diào)試軟件,不僅能夠應(yīng)對(duì)一般的CAN調(diào)試開(kāi)發(fā),還一個(gè)用于設(shè)計(jì),監(jiān)測(cè),分析與模擬CAN網(wǎng)絡(luò)的開(kāi)源的開(kāi)放式總線PC軟件。BUSMASTER已被RBEI概念化,設(shè)計(jì)與開(kāi)發(fā),同時(shí)基于CANvas軟件工具。

不過(guò)candleLight固件需要下載增加BUSMASTER增加了cantact設(shè)備支持的版本。

poYBAGEAKPCAVXssAAHax9JUnow265.pngpoYBAGEAKPWAT6-8AAQ5W84Jil0868.png

虛擬串口轉(zhuǎn)can的Stock slcan固件
對(duì)于很多不熟悉usb編程,還是需要串口協(xié)議轉(zhuǎn)can的小伙伴,slcan固件就正好滿足需求,CANable通過(guò)燒寫(xiě)slcan固件。該固件枚舉為L(zhǎng)inux、Mac和Windows上的標(biāo)準(zhǔn)串行設(shè)備。CANable可以很容易地通過(guò)重新燒寫(xiě)固件,在Linux中枚舉為本地can設(shè)備,在Windows中枚舉為通用串口設(shè)備。

在Linux上,CANable原生地與slc一起工作,因此您可以使用所有標(biāo)準(zhǔn)的can-utils命令行工具,甚至Wireshark來(lái)與總線交互。

在Windows和Mac上,CANable可以和cantact-app一起工作。這是一個(gè)簡(jiǎn)單的Java應(yīng)用程序,可以實(shí)時(shí)顯示CAN流量,并允許您在總線上傳輸消息。

固件燒寫(xiě)方式

web在線燒寫(xiě)固件
如果只是想copy一個(gè)來(lái)用用,不需要去自己編譯燒寫(xiě),可以直接用STM32的USB DFU通過(guò)USB下載固件,我會(huì)在附件資料提供相應(yīng)的軟件和文檔說(shuō)明,并提供編譯好的幾個(gè)固件。

canable還提供了一個(gè)web的燒寫(xiě)頁(yè)面

這個(gè)真的超級(jí)方便了,意味著你不需要任何燒寫(xiě)器或者準(zhǔn)備任何固件編譯的環(huán)境,只要有谷歌瀏覽器,就能隨時(shí)隨地切換固件,是不是很強(qiáng)大!

用谷歌瀏覽器打開(kāi)這個(gè)頁(yè)面,把canbale的DFU撥碼開(kāi)關(guān)按下去,在用USB連接電腦。選擇需要燒寫(xiě)的的固件類型,再點(diǎn)connect and update就可以直接通過(guò)網(wǎng)頁(yè)進(jìn)行燒寫(xiě)。

pYYBAGEAKQKAHou0AACOhvyylkQ022.png
poYBAGEAKQiACzFhAARsGIEKdQw955.png
注:這個(gè)網(wǎng)頁(yè)上只能燒寫(xiě)canable的官方固件,自行編譯的固件無(wú)法燒寫(xiě)(現(xiàn)在該頁(yè)面已經(jīng)支持燒寫(xiě)PCAN固件了!給力)。

USB DFU-util燒寫(xiě)固件

下載dfu-util-0.9-win64:

解壓后,將編譯好的.bin文件拷貝到解壓后的目錄

創(chuàng)建一個(gè)文本文件,拷貝以下內(nèi)容進(jìn)去,注意candleLight_fw.binary 為要燒寫(xiě)的bin文件,需要改成需要燒寫(xiě)的文件名。然后把這個(gè)文本文件保存為flash.cmd

dfu-util --dfuse-address -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.binary
cmd /k
canbale的DFU撥碼開(kāi)關(guān)按下去,連接電腦USB線會(huì)識(shí)別成“STM32 BOOTLOADER”

如果識(shí)別失敗需要下載安裝驅(qū)動(dòng),

識(shí)別成功后,雙擊運(yùn)行之前創(chuàng)建的flash.cmd文件,會(huì)看到開(kāi)始燒寫(xiě)的進(jìn)度,如下就是燒寫(xiě)完成了
Download        [=========================] 100%        36108 bytes
Download done.
File downloaded successfully
相關(guān)固件和文檔已經(jīng)上傳到公眾號(hào)后臺(tái),感興趣的童鞋可以回復(fù)關(guān)鍵詞:UC,即可獲取下載鏈接。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263699
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2694

    瀏覽量

    463150
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354296
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3215

    瀏覽量

    42328
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    465

    瀏覽量

    16359

原文標(biāo)題:分享一個(gè)超棒的stm32的開(kāi)源usb-can項(xiàng)目

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式,微信公眾號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    USB-CAN通信的問(wèn)題

    用labview做USN-CAN(SYS-TEC 3204001)通信遇到問(wèn)題,請(qǐng)大神指點(diǎn)啟發(fā)下思路1.使用USB-CAN設(shè)備自帶的調(diào)試工具,可以正常發(fā)送接收,也可以實(shí)時(shí)讀取RTR幀2.用
    發(fā)表于 03-11 17:01

    Ginkgo USB-CAN接口適配器

    USB-CAN接口適配器同時(shí)進(jìn)行工作(最多可支持100個(gè));- 支持ZLG CANalyst-II分析儀CANpro協(xié)議分析平臺(tái)最新版本(V1.46)實(shí)現(xiàn)對(duì)高層協(xié)議數(shù)據(jù)的解析和分析;- 用戶可免費(fèi)更新、升級(jí)軟件
    發(fā)表于 10-09 15:09

    Ginkgo USB-CAN總線適配器

    ;- 支持4種工作模式(正常模式、環(huán)回模式、靜默模式、環(huán)回靜默模式),可以對(duì)適配器進(jìn)行自我測(cè)試;- 同臺(tái)PC可接入多個(gè)USB-CAN總線適配器同時(shí)進(jìn)行工作(最多可支持100個(gè));- 用戶可免費(fèi)更新、升級(jí)
    發(fā)表于 10-09 15:17

    緯圖Ginkgo USB-CAN接口適配器

    ,用戶可永久免費(fèi)升級(jí)最新固件和軟件;- 同臺(tái)PC可接入多個(gè)USB-CAN接口適配器同時(shí)進(jìn)行工作(最多可支持100個(gè));- 支持ZLG CANalyst-II分析儀CANpro協(xié)議分析平臺(tái)最新版
    發(fā)表于 11-03 09:49

    Ginkgo USB-CAN總線適配器的使用

    1.1 概述Ginkgo USB-CAN總線適配器是帶有USB2.0接口和2路CAN接口的CAN總線適配器,可進(jìn)行雙向數(shù)據(jù)傳送。Ginkgo USB
    發(fā)表于 02-21 11:37

    如何用Python Ginkgo USB-CAN發(fā)送和接收數(shù)據(jù)

    項(xiàng):Ginkgo USB-CAN Extend軟件對(duì)于第2項(xiàng)(開(kāi)源python項(xiàng)目):Python CAN數(shù)據(jù)發(fā)送和接收PC:兩臺(tái)PC(PC1,PC2)程序:1.確保在兩臺(tái)PC上都正確
    發(fā)表于 03-12 10:32

    個(gè)stm32開(kāi)源u***-can項(xiàng)目,canable及PCAN固件 精選資料分享

    照理來(lái)說(shuō),USB-CAN這種東西應(yīng)該已經(jīng)被做的爛大街的工具,國(guó)內(nèi)居然沒(méi)有個(gè)拿得出手的...
    發(fā)表于 08-20 06:52

    調(diào)試USB-CAN的適配器

    在調(diào)試USB-CAN的適配器的過(guò)程中,采用庫(kù)函數(shù)開(kāi)發(fā),在調(diào)試串口的過(guò)程中串口數(shù)據(jù)始終亂碼。思考番,發(fā)現(xiàn)由于外部晶振的原因,在 Keil 中Ctrl + Shift + F 查找 HSE_VALUE
    發(fā)表于 08-20 07:43

    USB-CAN工具介紹

    之前在工作的過(guò)程中,無(wú)意的了解到USBCAN卡,這玩意看起來(lái)爛大街的東西竟然還那么貴。USB-CAN這種工具,國(guó)內(nèi)居然沒(méi)有個(gè)拿得出手的開(kāi)源方案。某立功和PCAN動(dòng)輒2000+的價(jià)格也
    發(fā)表于 02-22 06:12

    USB-CAN用戶編程說(shuō)明及通訊庫(kù)源文件

    USB-CAN用戶編程說(shuō)明及通訊庫(kù)源文件
    發(fā)表于 12-14 17:24 ?3次下載

    基于U_STM32F103RCT6為主控的USB-CAN總線分析SCH圖紙

    ? ? 責(zé)任編輯:xj 原文標(biāo)題:基于U_STM32F103RCT6為主控的USB-CAN總線分析(圖紙+軟件) 文章出處:【微信公眾號(hào):電路設(shè)計(jì)技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。 ?
    的頭像 發(fā)表于 01-12 13:48 ?5882次閱讀

    個(gè)stm32開(kāi)源usb-can項(xiàng)目,canable及PCAN固件

    個(gè)stm32開(kāi)源usb-can
    發(fā)表于 12-20 18:55 ?36次下載
    扒<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>超</b><b class='flag-5'>棒</b>的<b class='flag-5'>stm32</b>的<b class='flag-5'>開(kāi)源</b><b class='flag-5'>usb-can</b><b class='flag-5'>項(xiàng)目</b>,canable及PCAN固件

    廣成usb-can接口卡功能講解(1)

    usb-can接口卡也叫USBCAN分析儀,是我們進(jìn)行CAN總線數(shù)據(jù)檢測(cè)的基礎(chǔ)設(shè)備。很多的廠家都開(kāi)放了有自己特色的USBCAN,我們廣成科技也不例外。為了方便大家了解廣成usb-can接口卡的功能,我將分幾期給大家用通俗易懂的語(yǔ)
    的頭像 發(fā)表于 01-03 10:26 ?2715次閱讀

    廣成usb-can接口卡功能講解(4)

    今天我們講的是廣成usb-can接口卡的濾波功能。其實(shí)除了usb-can接口卡以外,廣成科技還有很多的CAN轉(zhuǎn)換網(wǎng)關(guān)也集成了相關(guān)的功能。那么什么是濾波呢?它能夠?qū)崿F(xiàn)什么目的呢?我們來(lái)說(shuō)下。
    的頭像 發(fā)表于 01-03 10:43 ?1720次閱讀

    分享個(gè)stm32開(kāi)源usb-can項(xiàng)目

    照理來(lái)說(shuō),USB-CAN這種東西應(yīng)該已經(jīng)被做的爛大街的工具,國(guó)內(nèi)居然沒(méi)有個(gè)拿得出手的開(kāi)源方案。某立功和PCAN動(dòng)輒2000+的價(jià)格也是離譜。淘寶上各種虛擬串口方案、替換dll兼容某立
    的頭像 發(fā)表于 04-20 16:42 ?1827次閱讀