照理來說,USB-CAN這種東西應該已經(jīng)被做的爛大街的工具,國內(nèi)居然沒有一個拿得出手的開源方案。某立功和PCAN動輒2000+的價格也是離譜。淘寶上各種虛擬串口方案、替換dll兼容某立功軟件的各種方案....價格都倒是便宜,性能和可靠性嘛.......就不多說了,上位機軟件也是爛的一塌糊涂。
這里推薦一個國外的炒雞好用的開源工具CANable,ta有完全開源的軟硬件及上位機支持,支持windos和linux Stock can并且都免驅,且支持Python。
而且遠不止于此,經(jīng)過我不斷探索,在gitlhub各個大神倉庫各種折騰。
我發(fā)現(xiàn)這個canable這個項目衍生出了很多開源固件,目前固件和支持的軟件已經(jīng)極為豐富。
而且主芯片STM32F042/72支持USB DFU,可以通過USB直接更新固件,無縫切換多種上位機。
先上項目首頁,canbale項目官網(wǎng):
https://canable.io/
首先先看硬件項目
硬件項目其實叫做candleLight,github鏈接:
https://github.com/HubertD/candleLight] https://github.com/HubertD/candleLight
這個不帶隔離的硬件設計是比較簡單的,就是一塊帶usb和can的stm32f0 + CAN收發(fā)器TJA1051/3。
可惜的就是這顆stm32f0芯片現(xiàn)在價格漲得有點離譜了,之前在JLC打樣做了幾塊,主芯片就去到40多大洋,加上pcb和smt,打樣成本差不多投到100左右吧。
后來發(fā)現(xiàn)某寶上已經(jīng)有商家把canable作出產(chǎn)品了,帶隔離的價格也才100多,還帶外殼配件,果斷買了一個試試,某寶搜“開源 canable”就能找到,早知道就不用費勁自己打板了。
但是某寶上買的只提供了默認固件的相關資料,經(jīng)過我不斷探索,在gitlhub各個大神倉庫各種折騰。
我發(fā)現(xiàn)這個canable這個項目衍生出了很多開源固件,目前固件和支持的軟件已經(jīng)極為豐富,可以說可玩性極高。我甚至懷疑很多某寶和咸魚上的山寨PCAN就是canable換了一個殼子和固件而已!?。?/p>
pdf原理圖:
https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf
重點還是固件,第一個先說重磅的,PCAN固件!
論壇已經(jīng)有人分享了,還是這個鏈接:
https://github.com/moonglow/pcan_cantact
我會在附件里打包我編譯好的代碼和二進制文件可以直接USB燒寫
燒寫PCAN固件之后,CANable搖身一變就成了PEAK CAN-USB,直接可以使用PEAK的官方驅動以及軟件(pcan-view/ pcan-explorer 5),甚至基于peak開發(fā)的其他二次開發(fā)軟件(比如國內(nèi)的一些新能源車上位機,奇瑞,北汽這些)。
目前使用下來和原裝PCAN的兼容性還是相當不錯的,但是注意不要用于ECU/PLC程序刷新,程序下載到到中途會出錯,這個問題還需要進一步優(yōu)化。但是想想原裝PCAN動輒2000的價格,100多塊錢的canable加上這個PCAN固件是真的香啊。
介紹第二個固件是canable的默認固件candleLight_fw
https://github.com/candle-usb/candleLight_fw
這個固件功能也蠻強大,采用的winUSB的免驅方案,USB bulk雙緩沖的模式,實際傳輸性能遠超那些虛擬串口的USB-CAN。
支持windos和linux Stock can并且都免驅,且支持Python。
linux下使用和PCAN一樣都是內(nèi)核自帶驅動,支持SocketCAN 非常適合用一些開源的can的工具和庫進行二次開發(fā)。
candleLight固件的圖形化上位機叫做cangaroo。
cangaroo是candleLight固件專用的、簡單易用的can總線調(diào)試軟件,麻雀雖小五臟俱全,對于一般的can調(diào)試開發(fā)完全夠用,而且專門針對汽車逆向工程增加了通過can id分類接收到的can數(shù)據(jù)幀,并且當某個id的數(shù)據(jù)幀活躍時會進行高亮顯示以便于觀察分析。
支持Windos/Linux (Ubuntu發(fā)行版本)
最大支持同時接入32個CANable模塊
數(shù)據(jù)幀時間戳
支持數(shù)據(jù)日志保存
支持CAN DBC 文件協(xié)議解析
軟件綠色免安裝
candleLight固件還支持BUSMASTER(這個也就很厲害了,用過的都懂),BUSMASTER是一款功能強大的專業(yè)級CAN總線調(diào)試軟件,不僅能夠應對一般的CAN調(diào)試開發(fā),還一個用于設計,監(jiān)測,分析與模擬CAN網(wǎng)絡的開源的開放式總線PC軟件。BUSMASTER已被RBEI概念化,設計與開發(fā),同時基于CANvas軟件工具。
不過candleLight固件需要下載增加BUSMASTER增加了cantact設備支持的版本。
虛擬串口轉can的Stock slcan固件
對于很多不熟悉usb編程,還是需要串口協(xié)議轉can的小伙伴,slcan固件就正好滿足需求,CANable通過燒寫slcan固件。該固件枚舉為Linux、Mac和Windows上的標準串行設備。CANable可以很容易地通過重新燒寫固件,在Linux中枚舉為本地can設備,在Windows中枚舉為通用串口設備。
在Linux上,CANable原生地與slc一起工作,因此您可以使用所有標準的can-utils命令行工具,甚至Wireshark來與總線交互。
在Windows和Mac上,CANable可以和cantact-app一起工作。這是一個簡單的Java應用程序,可以實時顯示CAN流量,并允許您在總線上傳輸消息。
固件燒寫方式
web在線燒寫固件
如果只是想copy一個來用用,不需要去自己編譯燒寫,可以直接用STM32的USB DFU通過USB下載固件,我會在附件資料提供相應的軟件和文檔說明,并提供編譯好的幾個固件。
canable還提供了一個web的燒寫頁面
這個真的超級方便了,意味著你不需要任何燒寫器或者準備任何固件編譯的環(huán)境,只要有谷歌瀏覽器,就能隨時隨地切換固件,是不是很強大!
用谷歌瀏覽器打開這個頁面,把canbale的DFU撥碼開關按下去,在用USB連接電腦。選擇需要燒寫的的固件類型,再點connect and update就可以直接通過網(wǎng)頁進行燒寫。
注:這個網(wǎng)頁上只能燒寫canable的官方固件,自行編譯的固件無法燒寫(現(xiàn)在該頁面已經(jīng)支持燒寫PCAN固件了!給力)。
USB DFU-util燒寫固件
下載dfu-util-0.9-win64:
解壓后,將編譯好的.bin文件拷貝到解壓后的目錄
創(chuàng)建一個文本文件,拷貝以下內(nèi)容進去,注意candleLight_fw.binary 為要燒寫的bin文件,需要改成需要燒寫的文件名。然后把這個文本文件保存為flash.cmd
dfu-util --dfuse-address -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.binary cmd /kcanbale的DFU撥碼開關按下去,連接電腦USB線會識別成“STM32 BOOTLOADER”
如果識別失敗需要下載安裝驅動,
識別成功后,雙擊運行之前創(chuàng)建的flash.cmd文件,會看到開始燒寫的進度,如下就是燒寫完成了
Download [=========================] 100% 36108 bytes Download done. File downloaded successfully相關固件和文檔已經(jīng)上傳到公眾號后臺,感興趣的童鞋可以回復關鍵詞:UC,即可獲取下載鏈接。
-
usb
+關注
關注
60文章
7966瀏覽量
265295 -
CAN
+關注
關注
57文章
2762瀏覽量
464016 -
STM32
+關注
關注
2270文章
10915瀏覽量
356774 -
開源
+關注
關注
3文章
3381瀏覽量
42604 -
GitHub
+關注
關注
3文章
473瀏覽量
16504
原文標題:分享一個超棒的stm32的開源usb-can項目
文章出處:【微信號:玩轉單片機與嵌入式,微信公眾號:玩轉單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論