999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的CAN轉USB模塊設計

2016-11-22 08:23:53汪雙印魏紹明
化工自動化及儀表 2016年11期
關鍵詞:設計

汪雙印 葉 峰 劉 順 陳 衡 魏紹明

(中廣核檢測技術有限公司,江蘇 蘇州 215004)

基于STM32的CAN轉USB模塊設計

汪雙印 葉 峰 劉 順 陳 衡 魏紹明

(中廣核檢測技術有限公司,江蘇 蘇州 215004)

在有關CAN總線通信的嵌入式設計中,經常需要PC機作為調試工具,以便在PC機上直觀地觀察數據,這就需要CAN轉USB設備進行連接。筆者選用低成本的內部集成了CAN控制器和串口的ARM內核32位處理器STM32作為主體芯片完成CAN轉USB模塊的設計。該模塊速度快、可靠性高,能夠滿足大部分場合的要求。

CAN總線 STM32芯片 CAN轉USB

控制器局域網總線(Controller Area Network,CAN)是由德國Bosch公司為汽車應用而開發的多主機串行通信協議。由于它具有抗干擾能力強、可靠性高、實時性好及易于使用等特點,已經廣泛應用于工業自動化、交通工具、醫療儀器及樓宇自動化等多個領域[1]。CAN總線是唯一成為國際標準的現場總線。CAN總線具有以下特點:多主控制,總線空閑時所有單元節點都可發送消息;數據傳輸距離遠,低速下最遠距離可達10km;傳輸速率高,最高速度可達1Mb/s;無破壞的基于標識符的優先級仲裁,仲裁失利后轉為接收;可靠的錯誤檢測與診斷,具有錯誤通知和恢復功能,支持自動重發;系統的柔軟性強,增減節點不影響其他節點[2]。正是基于以上的優點,使得CAN總線在工業現場應用廣泛。而大多數CAN總線的使用場合都以電腦作為上位機采集數據,故需要使用CAN轉USB模塊進行接口轉換。因此,筆者給出了一種高可靠性、低成本的CAN轉USB的設計方案。

1 整體設計思路

首先通過CAN收發器的CAN_H和CAN_L將STM32連入CAN網絡中。收發器負責從總線上進行數據的收發,然后數據通過STM32內部集成的CAN控制器進行邏輯處理,得到的數據進行組織后再通過TTL轉芯片USB(CH340G)與電腦的虛擬串口進行通信。整體模塊結構框圖如圖1所示。

圖1 整體模塊結構框圖

2 模塊硬件設計

2.1STM32F103C8T6微控制器

STM32F103C8T6芯片是由ST公司推出的基于ARM Cortex-M3內核的32位MCU,最高頻率72MHz。該控制器集成度高,片上外設豐富,集成單周期硬件乘法器。內部集成多個定時器,支持3路串口。它本身集成了CAN控制器,支持CAN協議2.0A和2.0B,位通信比特率可達1Mbit/s,完全符合J1939規范[3]。

STM32內部的CAN控制器有如下特性:比特率最高1Mbit/s;發送方面,內部有3個發送郵箱,發送報文的優先級可配置;接收方面,兩個3級深度的FIFO,14組過濾器,支持標識符列表和標識符屏蔽模式。這樣在報文的處理上可最大程度地減少CPU的開銷。

2.2SN65HVD230 CAN收發器

SN65HVD230芯片為德州儀器推出的3.3V電壓的高速CAN收發器,支持ISO 11898標準,最高速度可達1Mbit/s,最多支持120個節點,具有良好的抗干擾能力和高可靠性,具有熱保護,抗瞬間干擾,開路失效保護功能。CAN收發器的電路設計如圖2所示。圖2中P4 Header為兩腳插針,可用跳線帽來決定本模塊接入CAN總線后是否啟用R4終端電阻。

圖2 CAN收發器電路

2.3CH340G TTL轉USB芯片

CH340G是一個USB總線的轉接芯片,可以實現USB轉串口、USB轉IrDA紅外或者USB轉打印口。在串口方式下,CH340還可以將普通的串口設備直接升級到USB總線。外圍元器件需求很少,只需要晶振和電容即可。硬件全雙工串口,支持通信比特率50bit/s~2Mbit/s,內置收發緩沖區。電路設計如圖3所示。

圖3 CH340G電路

3 軟件設計

模塊的功能為實現CAN網絡與PC機通信,因此需設計相關的下位機軟件進行數據處理、發送等。軟件設計主要以KEIL MDK5作為集成開發環境,PC機端軟件可以采用現成的串口助手。下位機軟件流程框圖如圖4所示。

圖4 下位機軟件流程

程序開始,首先進行相關的片上外設初始化,需要初始化的有系統時鐘、CAN控制器相關寄存器、串口相關寄存器及中斷向量表等。然后程序進入main()函數中的主循環。主循環中包含CanConfig()、UartConfig()、CanToUartProcess()、UartToCanProcess()、UartSend()及CanSend()等函數。

當PC機有數據通過串口發送到STM32時,會產生串口接收中斷。PC機每次發送15個Byte(除掉了起始和結束標志),Byte0用于區分后續的數據是配置數據還是需要發送到CAN總線上的數據,若為配置數據,則調用CanConfig()、UartConfig()函數對CAN的標識符、掩碼、幀格式、幀類別和串口的比特率及停止位等信息按后續14Byte數據的要求進行配置;若為要發送到CAN總線上的數據,則后續的14Byte遵循如下格式(可由上位機軟件按此格式生成):將ID(報文標識符,標準幀11位,擴展幀29位)、IDE(區分擴展標識符和標準標識符)和RTR(區分數據幀和遠程幀)最多共計31bit數據放入Byte1~Byte4中,DLC(數據字節數)放入Byte5中,DATA0~7(數據)共計8Byte數據存入Byte6~Byte13中,最后為了防止數據出錯將所有數據進行求和校驗放入Byte14中。串口接收完15Byte后將數據存入temp[0]~temp[14],此時可以對數據求校驗和來與temp[14]比較,查看數據是否出錯,未出錯則調用UartToCanProcess()將數據提取出來,放入CAN控制器的發送郵箱中,然后調用CanSend()將報文發送到CAN總線上,至此由PC機到CAN總線的數據發送完畢。

當有CAN接收FIFO中斷產生后,說明標識符過濾已經通過,得到的都是需要的報文,CanToUartProcess()函數將接收到的報文信息進行提取,將得到的ID、IDE、RTR、DLC、DATA[0]~DATA[7]重新組織,放在一個unsigned char buff[14]中,將ID、IDE和RTR最多共計31bit數據放入buff[0]~buff[3]中,DLC放入buff[4]中,將DATA0~7共計8byte數據存入buff[5]~buff[12]中,最后為了防止數據出錯將所有數據進行求和校驗放入buff[13]中。組織完成之后,利用UartSend()函數,將數據加上起始和結束標志后發送出去,這樣CAN總線中的數據發送到PC機就完成了。當PC機接到數據后可以選擇是否利用buff[13]對數據進行校驗。

4 實驗

將設計的模塊與另一CAN節點相連接,該節點為一單片機不停地向CAN總線發送8Byte標準幀數據1、2、3、4、5、6、7、8,ID為0x211。PC機連接上模塊后,利用串口助手接收的數據如圖5所示。

圖5 串口助手接收到的CAN數據

收到的數據中AA為起始和結束標志,由于ID為0x211,數據幀RTR為0,標準幀IDE為0,這樣得到前4位數據位分別為42(標準幀ID前8位)、20(標準幀ID后3位+擴展幀ID前5位得到)、0(擴展幀ID中間8位)、0(擴展幀ID后5位+0+IDE+RTR)、08(DLC),后面緊接著的8位為數據內容,之后的8E是除了起始和結束標志之外的所有數據的校驗和。實驗結果與設計相吻合。

5 結束語

基于STM32 32位ARM內核微控制器設計CAN轉USB模塊,很好地利用了微控制器內部豐富的片上外設,72MHz的頻率使處理高速度的數據也不會有任何延遲。直接使用內部的CAN控制器、USART串口模塊、外部的CAN收發器和USB轉TTL芯片進行相關設計,整體設計硬件簡單,軟件穩定可靠,并且用戶可根據自身需求編寫相應的上位機軟件,電腦上基于虛擬串口二次開發容易,是不錯的低成本CAN轉USB的解決方案。

[1] 高軍,劉曉莉,趙延明.基于LPC2292的CAN總線USB接口適配器的設計[J].化工自動化及儀表,2007,34(4):49~52.

[2] 牛躍聽,周立功,方丹.CAN總線嵌入式開發-從入門到實踐[M].北京:北京航空航天大學出版社,2012:3~8.

[3] 張河新,王曉輝,黃曉東.基于STM32和CAN總線的智能數據采集節點設計[J].化工自動化及儀表,2012,39(1):78~80.

DesignofCAN-USBConversionBasedonSTM32

WANG Shuang-yin, YE Feng, LIU Shun, CHEN Heng, WEI Shao-ming

(CGNPCInspectionTechnologyCo.,Ltd.,Suzhou215004,China)

In the embedded design concerning CAN bus, PC as a debugging tool and data displayer asks for CAN-USB conversion. The commercial conversion always cost too much and it’s difficult to popularize in low cost applications. The STM32 micro controller which internally integrating CAN controller and serial port controller was adopted to implement CAN-USB conversion. This module can satisfy most application because of high running speed and high reliability.

CAN bus, STM32 chip, CAN-USB conversion

TH862

A

1000-3932(2016)11-1189-04

2016-09-30(修改稿)

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 亚洲欧洲日韩综合| 无码一区二区三区视频在线播放| Aⅴ无码专区在线观看| 在线免费亚洲无码视频| 国产sm重味一区二区三区| 国产白丝av| 国产91熟女高潮一区二区| 在线无码九区| 精品国产香蕉在线播出| 国产精品成人啪精品视频| 日本一本正道综合久久dvd| 亚洲国产高清精品线久久| 成人伊人色一区二区三区| 久精品色妇丰满人妻| 欧美国产在线看| 不卡色老大久久综合网| 天天操精品| 91网址在线播放| 精品久久久久无码| 成人小视频网| 88av在线看| 99re在线视频观看| 久热re国产手机在线观看| 欧美国产成人在线| 日韩欧美91| 72种姿势欧美久久久大黄蕉| 五月激激激综合网色播免费| 广东一级毛片| 国内精品自在自线视频香蕉| 国产精品第一区在线观看| 91麻豆精品视频| 免费女人18毛片a级毛片视频| 最新午夜男女福利片视频| 久久亚洲国产最新网站| 91精品视频网站| 日本AⅤ精品一区二区三区日| 亚洲不卡影院| 国产微拍精品| 亚洲h视频在线| 亚洲床戏一区| 在线无码av一区二区三区| 日本中文字幕久久网站| 亚洲色中色| 国产麻豆精品在线观看| 亚洲成aⅴ人片在线影院八| 国产成人免费高清AⅤ| 欧美三級片黃色三級片黃色1| 亚洲日韩精品欧美中文字幕| 精品国产一二三区| 综合久久久久久久综合网| 丝袜亚洲综合| 亚洲VA中文字幕| 97视频在线观看免费视频| 在线播放国产99re| 97se亚洲综合在线韩国专区福利| 久久黄色一级片| 亚洲精品福利网站| 国产新AV天堂| 成人韩免费网站| 无码高潮喷水在线观看| 亚洲自偷自拍另类小说| 精品撒尿视频一区二区三区| 亚洲永久免费网站| 欧美一级高清片久久99| 99福利视频导航| 国产尤物视频在线| 99久久这里只精品麻豆| vvvv98国产成人综合青青| 中文字幕乱码二三区免费| 国内精品视频在线| 国产精品久久久久久久久久98| 国产午夜看片| 国产精品一区二区国产主播| 日本高清有码人妻| 国产日韩欧美在线播放| 99免费视频观看| 国产喷水视频| 人妻丝袜无码视频| 亚洲国产中文精品va在线播放| 欧美激情视频在线观看一区| 午夜啪啪网| 日本亚洲成高清一区二区三区|