本文來聊聊ROS移動機器人中控制器與樹莓派進行傳輸信號的通信接口電路設計。在此之前回顧下在本項目第一篇文章中提到的硬件框圖,如下圖所示:
從圖中可以清楚地看出,樹莓派通過wifi和PC機通信,同時樹莓派通過串口與控制器通信。 目前市面上的樹莓派3B,4B在電路設計時已經加入了WIFI模塊,可以通過編程與PC機通信,這里的電路設計我們不用考慮。 樹莓派與主控進行通信時需要使用USART通信協議。 此時常用的方法是使用TTL模塊將USB協議轉成USART協議,這時就不可避免的在樹莓派上插入USB轉TTL模塊,然后通過杜邦線與主控連接。
使用這種方法,看似方便,但是系統的整體布線看起來會顯得非常凌亂,還會存在接觸不良的問題,引起控制系統的不穩定。 對于電路設計集成度和完美主義追求者,這點是不能容忍的。 所以在控制器設計中,直接將通信協議轉換電路集成到了PCB板中,提高了系統集成度和系統的穩定性。
USB轉TTL電路設計
在控制器原理圖設計中,集成了如下USB轉TTL電路。 這個電路比較常見,它支持串口通信,與STM32程序一鍵下載功能(可省去購買仿真器)。
在電路中VD10用于防止電流倒灌,防止在STM32不需要供電時,CH340G芯片的TX引腳依然給主控芯片供電引起的程序的錯誤執行情況。
芯片中V3引腳除了在不同電壓供電模式下接法不同,對于電容數值選用也是需要注意的。 V3引腳的電容用于內部電源節點退耦,來改善USB傳輸過程中的EMI,通常容量在4700pF到0.1uF范圍,建議容量為0.01uF。
在CH340G芯片設計中需要外接12M石英晶振和與之匹配的22pf高頻起振電容。 為芯片在通信過程中提供時鐘基準。 在PCB布局和布線時需要保證晶振走線盡可能短,在晶振走線下方不要布其他信號線,當條件允許時,可以對晶振走線進行包地處理,以防止時鐘信號受到干擾。
STM32一鍵下載電路實現原理
下面我們來看看CH340G是如何實現STM32一鍵下載功能的。
STM32有以下三種啟動模式:
從表中可以知道,使用串口燒寫程序,需要配置BOOT0為1,BOOT1為0,如果想STM32一復位就運行代碼,需要配置BOOT0為0,BOOT1配置為什么都可以,為了實現這個功能,可以設計一個電路,通過CH340G芯片的DTR#和RTS#引腳的信號來控制電路狀態,從而間接控制STM32的RESET和BOOT0引腳的信號, 實現一鍵下載功能。 控制電路如下圖所示:
當使用FlyMcu軟件時需要選擇DTR的低電平復位,RTS高電平進BootLoader模式,如下圖所示,這樣在進行程序燒寫時,DTR和RTS引腳就能夠進行控制一鍵下載電路在適當的時刻,使STM32復位引腳和BOOT0處于正確的電平,實現STM32復位與程序燒寫。
首先FlyMcu控制DTR置低,則DTR#輸出高電平,同時RTS置高,則RTS#輸出低電平。 這時三極管Q1和Q2同時導通,NRST引腳被拉低單片機復位,BOOT0引腳拉高為1。 延時一段時間后FlyMcu控制DTR為高電平,則DTR#為低電平,RTS#持續保持為低電平,三極管Q1截止單片機停止復位,此時BOOT0依然維持高電平1,單片機進入ISP模式,這時就可以實現STM32一鍵燒寫程序了。 其中DTR#和RTS#的波形如下圖所示。
-
接口電路
+關注
關注
8文章
469瀏覽量
57554 -
控制器
+關注
關注
114文章
16998瀏覽量
183157 -
STM32
+關注
關注
2290文章
11018瀏覽量
362697 -
移動機器人
+關注
關注
2文章
786瀏覽量
34028 -
ROS
+關注
關注
1文章
285瀏覽量
17592
發布評論請先 登錄
資料:移動機器人能否自動充電?
Labview My RIO 移動機器人
機器人、協作機器人和移動機器人,你分的清楚嗎
如何實現移動機器人的設計?
請問怎么設計一種室外移動機器人組合導航定位系統?
什么是移動機器人軟硬件系統問題
最實用的STM32和ROS機器人的串口通信方案
差速移動機器人軌跡跟蹤控制方法
如何利用掃地機輪子制作ROS移動機器人地盤
電機在ROS移動機器人系統中的作用
基于Matlab和VR技術的移動機器人建模及仿真
制作ROS移動機器人地盤

評論