<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM Cortex3的低功耗無(wú)源USB-CAN透明傳輸的實(shí)現

基于A(yíng)RM Cortex3的低功耗無(wú)源USB-CAN透明傳輸的實(shí)現

作者: 時(shí)間:2018-09-06 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:為了建立良好的網(wǎng)絡(luò )通信人機界面,可以通過(guò)通信協(xié)議的轉換和數據的透明傳輸,使PC機通過(guò)USB接口接入CAN通信網(wǎng)絡(luò ),成為網(wǎng)絡(luò )的一個(gè)通信節點(diǎn),方便對CAN通信網(wǎng)絡(luò )的監控和管理。

本文引用地址:http://dyxdggzs.com/article/201809/388545.htm

1 技術(shù)背景

近年來(lái),隨著(zhù)工業(yè)場(chǎng)合自動(dòng)化技術(shù)的不斷更新,工業(yè)現場(chǎng)的數據采集、數據傳輸、設備控制已經(jīng)成為電子工程師研究的重要課題。為了建立良好的通信人機界面,可以通過(guò)通信協(xié)議的轉換和數據的透明傳輸,使PC機通過(guò)USB接口接入CAN通信網(wǎng)絡(luò ),成為CAN總線(xiàn)網(wǎng)絡(luò )的一個(gè)通信節點(diǎn),方便對CAN通信網(wǎng)絡(luò )的監控和管理。本文介紹了基于A(yíng)RM Cortex3的USB—CAN透明傳輸的一般思路和軟硬件設計方法。

1.1 CAN總線(xiàn)協(xié)議

CAN總線(xiàn)是一種現場(chǎng)總線(xiàn)協(xié)議,目前在國內已經(jīng)得到了廣泛的應用和深入的研究。與其他工業(yè)現場(chǎng)總線(xiàn)相比,CAN總線(xiàn)具有通信速率高、容易實(shí)現、且性?xún)r(jià)比高等諸多優(yōu)點(diǎn),目前已經(jīng)成為工業(yè)現場(chǎng)總線(xiàn)的一種重要標準,在工業(yè)現場(chǎng)受到了廣泛的應用,展現出強勁的市場(chǎng)競爭力。

CAN總線(xiàn)協(xié)議具有完整的解決工業(yè)現場(chǎng)通信的技術(shù)手段,其在技術(shù)運用中具有以下優(yōu)勢:

(1)各類(lèi)數據幀的建立方便,功能明晰。

(2)同一網(wǎng)絡(luò )內的節點(diǎn)數多,能夠滿(mǎn)足絕大多數工業(yè)現場(chǎng)通信網(wǎng)絡(luò )對節點(diǎn)數量的需求。

(3)成熟的節點(diǎn)標識符機制及總線(xiàn)結構,可滿(mǎn)足在各節點(diǎn)之間實(shí)現自由通信。

(4)信號的傳輸為差分方式,布線(xiàn)結構簡(jiǎn)單,成本低廉。

(5)在保證傳輸速率的前提下具有較大的傳輸距離。

(6)控制芯片完全商品化,可靠性高。芯片內部集成了錯誤監測機制和管理模塊,具有極強的抗干擾能力。

1.2 USB通信協(xié)議

USB的全稱(chēng)為“”。是一個(gè)外部總線(xiàn)標準,用于規范PC機與外部設備的連接和通訊。其最大的特點(diǎn)是支持設備的即插即用和熱插拔功能。USB版本經(jīng)歷了多年的發(fā)展,已經(jīng)發(fā)展為3.1版本,成為當前PC機中的標準擴展接口。

USB總線(xiàn)的終端分為主機和設備。設備通過(guò)枚舉的方式與主機連接。USB支持四種基本的數據傳輸模式:控制傳輸,等時(shí)傳輸,中斷傳輸及數據塊傳輸。根據不同的用途,選擇不同的傳輸模式。根據工業(yè)場(chǎng)合CAN總線(xiàn)網(wǎng)絡(luò )中數據對象的特點(diǎn),本項目中的USB—CAN透明傳輸卡將采用中斷的方式進(jìn)行數據傳輸。

2 系統開(kāi)發(fā)概述

2.1 本技術(shù)在CAN通信網(wǎng)絡(luò )中的運用

在CAN總線(xiàn)通信網(wǎng)絡(luò )中,各個(gè)通信節點(diǎn)通過(guò)總線(xiàn)的形式相連,USB—CAN透明傳輸卡的一端接入CAN總線(xiàn),另外一端連接PC機。通過(guò)USB—CAN卡的透傳功能,PC機在CAN通信網(wǎng)絡(luò )中完全等同于一個(gè)普通的通信節點(diǎn),實(shí)現了對網(wǎng)絡(luò )的監控和管理。

2.2 開(kāi)發(fā)需求概述

本項目開(kāi)發(fā)的上位機平臺是WINDOWS系統下的MDK開(kāi)發(fā)編譯環(huán)境。硬件平臺為具有很強低功耗和處理能力的ARM Cortex3內核LM3S5956微處理器。為方便通信測試,上位機需要安裝相關(guān)數據監測軟件。

3 硬件設計

硬件結構框圖如圖1所示,主要分為微處理器、接口及電源三部分。

LM3S5956微處理器作為數據處理的核心部件,其功能就是將USB和CAN接口接收到的數據進(jìn)行直接轉發(fā),與其他處理器相比,該處理器內置CAN控制器和USB控制器,引腳較少,在保證低功耗的前提下具有較強的數據處理能力。

在接口方面,由于CAN總線(xiàn)物理層信號為差分的形式(CAN_H和CAN_L),所以需要增加CAN物理層芯片(CAN收發(fā)器)來(lái)進(jìn)行電平轉換,本項目所采用的CAN物理層芯片為T(mén)JA1040。USB總線(xiàn)為4芯,其中包含兩路信號線(xiàn)(USB-DP和USBDM)、+5 V電源和GND。

USB—CAN透明傳輸卡的供電方式是本項目設計的關(guān)鍵環(huán)節,PC機的USB總線(xiàn)中有兩路電源信號分別為+5 V和GND,通??梢蕴峁┑淖畲箅娏鳛?00 mA,由于采用了低功耗微處理器和CAN收發(fā)器,500 mA的電流完全可以滿(mǎn)足USB—CAN透明傳輸卡的功耗需求,所以本項目通過(guò)從PC機的USB接口“取電”,達到了真正的“無(wú)源”方式,大大節省了USB-CAN透明傳輸卡的成本和體積,使用更加方便。由于LM3S5956微處理器采用3.3 V供電,所以只需要在電路設計中,增加一個(gè)5 V-3.3 V電源芯片即可。

由于采用了內置CAN控制器和USB控制器的低功耗ARM Cortex3微處理器和方便靈活的USB供電方式,整個(gè)USB—CAN透明傳輸卡的硬件非常小巧,在環(huán)境復雜的工業(yè)通信場(chǎng)合,具有很高的實(shí)用性。

4 軟件設計

4.1 CAN通信相關(guān)

4.1.1 LM3S5956微處理器的CAN控制器

LM3S5956微處理器內置了CAN控制器模塊,該模塊支持CAN 2.0 A/B協(xié)議。支持包括具有11位標識符(標準幀)或29位標識符(擴展幀)的數據幀、遠程幀、錯誤幀以及超載幀的報文傳輸。傳輸速率可以通過(guò)編程配置,CAN模塊主要由3個(gè)部件組成:

(1)CAN協(xié)議控制器和報文處理器

(2)報文存儲器

(3)CAN寄存器接口

協(xié)議控制器從CAN總線(xiàn)傳輸和接收串行數據,并將數據傳遞到報文處理器。接著(zhù),報文處理器根據當前的濾波和報文對象存儲器中的標識符,將該信息載入合適的報文對象。報文處理器還負責根據CAN總線(xiàn)上的事件來(lái)產(chǎn)生中斷。

報文對象存儲器由32個(gè)相同的存儲塊組成,這些存儲塊保存了每個(gè)報文對象當前的配置信息、狀態(tài)和實(shí)際數據??梢酝ㄟ^(guò)CAN報文對象寄存器接口來(lái)訪(fǎng)問(wèn)報文對象存儲器。

CAN報文對象寄存器接口提供了兩個(gè)寄存器組來(lái)與報文對象通信。由于不能直接訪(fǎng)問(wèn)報文對象存儲器,所以必須使用這兩個(gè)接口來(lái)讀寫(xiě)各個(gè)報文對象。當多個(gè)對象包含需要處理的新信息時(shí),這兩個(gè)報文對象接口允許并行訪(fǎng)問(wèn)CAN控制器報文對象。

為滿(mǎn)足CAN2.0的基本通信,需要進(jìn)行驅動(dòng)程序和用戶(hù)應用程序兩個(gè)層次的程序設計。驅動(dòng)程序主要包括數據結構的定義和API函數的設計。需要定義的數據結構有時(shí)鐘配置結構體和CAN消息對象結構體。本項目中需要完成的API函數有:波特率配置函數、波特率配置信息獲取函數、CAN控制器使能函數、CAN控制器關(guān)閉函數、CAN控制器初始化函數、CAN中斷使能函數、CAN中斷關(guān)閉函數、CAN中斷標志清除函數、CAN中斷狀態(tài)獲取函數、報文對象清除函數、讀取報文對象函數、配置報文對象函數。應用程序主要包括CAN報文發(fā)送函數設計、CAN報文接收配置函數、CAN中斷服務(wù)函數設計。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>