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
主站蜘蛛池模板: 99re热精品视频国产免费| 色哟哟国产精品一区二区| AV片亚洲国产男人的天堂| 精品福利视频导航| 狠狠躁天天躁夜夜躁婷婷| 91热爆在线| 国产成人亚洲精品无码电影| 亚洲高清无码久久久| 好吊色国产欧美日韩免费观看| 少妇精品网站| 国产乱码精品一区二区三区中文| 一级爱做片免费观看久久 | 精品久久国产综合精麻豆 | 香蕉视频国产精品人| 国产视频入口| 91久久国产综合精品女同我| 伊人久热这里只有精品视频99| 无码AV动漫| 亚洲国产综合第一精品小说| 久久黄色免费电影| 2022精品国偷自产免费观看| 日韩中文精品亚洲第三区| 在线看片中文字幕| 久热re国产手机在线观看| 少妇人妻无码首页| 成人无码一区二区三区视频在线观看| 国产精品视频a| 伊人网址在线| 中文字幕人成乱码熟女免费| 精品免费在线视频| 亚洲最大福利网站| 欧美午夜视频| 2048国产精品原创综合在线| 亚洲精品免费网站| 国产免费人成视频网| 伊人精品视频免费在线| 久久人人97超碰人人澡爱香蕉| 又粗又大又爽又紧免费视频| 欧美在线中文字幕| 亚洲第一视频网| 日本道综合一本久久久88| 亚洲高清国产拍精品26u| 亚洲日本一本dvd高清| 三上悠亚精品二区在线观看| 玖玖精品在线| 欧美成人精品高清在线下载| 亚洲国产av无码综合原创国产| a级毛片一区二区免费视频| 久久精品免费国产大片| 毛片网站在线看| 中文字幕人成人乱码亚洲电影| 巨熟乳波霸若妻中文观看免费 | 精品久久久久久久久久久| 国产免费a级片| 久久精品人妻中文系列| 97av视频在线观看| 99在线视频免费| 在线免费亚洲无码视频| 亚洲v日韩v欧美在线观看| 成人看片欧美一区二区| 看你懂的巨臀中文字幕一区二区| 欧美亚洲综合免费精品高清在线观看| 国产乱码精品一区二区三区中文 | 538精品在线观看| 国产网站免费| 欧美高清日韩| 亚洲视频一区在线| 成人小视频网| 国内自拍久第一页| 99精品视频播放| 国产91小视频| 丰满人妻被猛烈进入无码| 国产91小视频| 第九色区aⅴ天堂久久香| 高潮毛片无遮挡高清视频播放| 日韩不卡高清视频| 免费女人18毛片a级毛片视频| 久操线在视频在线观看| 最新国产你懂的在线网址| a亚洲视频| 欧美天堂在线| 香蕉久人久人青草青草|