<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è) > 測試測量 > 設計應用 > 基于MCP2515的CAN總線(xiàn)擴展

基于MCP2515的CAN總線(xiàn)擴展

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

摘要 隨著(zhù)數字信號處理器TMS320F2812的廣泛應用,擴展TMS320F2812的接口成為一種趨勢。針對本公司某測試設備的整體設計要求,利用具有SPI接口的獨立控制器通過(guò)TMS320F2812的SPI接口,實(shí)現TMS320F2812的擴展,滿(mǎn)足了該測試設備的控制精度、處理速度以及對外雙冗余CAN接口的設計要求,具有較強的工程實(shí)用價(jià)值。
關(guān)鍵詞 ;CAN總線(xiàn);SPI總線(xiàn);TMS320F2812

CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò )總線(xiàn),是德國B(niǎo)osch公司在1986年面向汽車(chē)各子系統間通信而開(kāi)發(fā)出的通信協(xié)議,被認為是目前最有前途的現場(chǎng)總線(xiàn)之一,廣泛應用于工業(yè)自動(dòng)化監控網(wǎng)絡(luò )中,具有高質(zhì)量、低成本、易實(shí)現、安全性高的特點(diǎn)。TMS320F2812數字信號處理器是TI(Texas Instruments)美國德州儀器公司最新推出的32位定點(diǎn)DSP控制器,是目前控制領(lǐng)域最先進(jìn)的處理器之一,其頻率高達150 MHz,提高了控制系統的精度和芯片的處理能力。TMS320F2812本身集成了一路CAN總線(xiàn)接口,僅依靠TMS320F2812不能滿(mǎn)足本測試設備對雙冗余的CAN總線(xiàn)設計要求。文中采用TMS320F2812作為測試設備的主控制器。雖然TMS320F2812本身只帶一路CAN總線(xiàn),但同時(shí)又自帶一路SPI(Serial PeripheralInterface)即串行外圍設備接口總線(xiàn),而且是一款具有SPI接口的獨立CAN控制器,完全支持CANV2.0B技術(shù)規范。因此采用TMS320F2812通過(guò)MCP2515實(shí)現其CAN總線(xiàn)擴展,文中即給出該應用實(shí)例,包括硬件設計電路原理圖,軟件系統程序設計流程圖和簡(jiǎn)單的子程序流程,并加以說(shuō)明。

1 芯片介紹
Microchip推出的MCP2515是一款完全支持CANV2.0B技術(shù)規范、具有SPI接口的獨立CAN控制器,內含2個(gè)接收緩沖器、3個(gè)發(fā)送緩沖器、6個(gè)29位驗收濾波寄存器以及2個(gè)29位驗收屏蔽寄存器。具有靈活的中斷性能和接收過(guò)濾及信息管理能力,另外還有幀屏蔽和過(guò)濾、幀優(yōu)先級設定等特性,能減少對MCU資源的占有。MCP2515的SPI接口時(shí)鐘頻率最高可達10 MHz,同時(shí)具備最高40 MHz的時(shí)鐘輸入速度,在實(shí)際應用中其通信速率最高可達1 Mbit·s-1,能夠發(fā)送和接收標準/擴展數據幀以及遠程幀。
MCP2515具有配置模式、正常模式等5種工作模式。利用CANCTRL REQOP位可進(jìn)行工作模式的選擇,能夠靈活應用于不同的系統,通過(guò)其監聽(tīng)模式還能在CAN網(wǎng)絡(luò )中實(shí)現自動(dòng)波特率檢測。

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

a.JPG


MCP2515的內部結構框圖如圖1所示,共包括CAN模塊、SPI模塊以及其他模塊共3部分。其中CAN模塊完成CAN總線(xiàn)上所有報文的收發(fā),SPI模塊實(shí)現MCU和MCP2515間的SPI總線(xiàn)的數據通信,控制邏輯/寄存器實(shí)現對MCP2515的設置和控制,對外接口提供MCP2515的多個(gè)中斷引腳,用戶(hù)可根據需要自由選擇,其內部結構框圖如圖1所示。

2 系統硬件電路結構設計
該測試設備的硬件電路結構原理如圖2所示,其虛線(xiàn)部分是對TMS320F2812進(jìn)行CAN總線(xiàn)擴展的硬件原理。MCU是使用TI公司的TMS320F28 12,通過(guò)其內部集成的SPI總線(xiàn)接口和MCP2515連接,CAN收發(fā)器采用TI公司的SN65HVD230Q,FPGA采用Xinlix公司的XC2V1000_FG456,由其分別產(chǎn)生TMS320F2812和MCP2515所需的時(shí)鐘、復位信號及一些離散控制信號。MCP2515的中斷輸出引腳直接接到TMS320F2812的外部中斷輸入引腳上。該硬件電路結構原理表示出簡(jiǎn)單的電氣連接關(guān)系,在實(shí)際應用中,會(huì )根據實(shí)際應用條件的不同,進(jìn)行相應的適應性改進(jìn)。例如,如果TMS320F2812和MCP2515所使用的電源不同,就需要在TMS320F2812和MCP2515之間加電平轉換芯片,以滿(mǎn)足其不同的電源要求;并且還可在MCP 2515和CAN收發(fā)器之間,增加光耦隔離器以增加系統的抗干擾能力,并能有效提高系統的可靠性。
TMS320F2812可通過(guò)SPI接口和MCP2515直接連接,MCP2515的CLK和TMS320F2812的SPICLKA連接,為數據的發(fā)送和接收提供同步時(shí)鐘信號。
TMS320F2812的SPI接口有主和從兩種操作模式,在該測試設備中其工作在主模式。
TMS320F2812和MCP2515之間以SCK作為同步時(shí)鐘信號進(jìn)行通信。在時(shí)鐘上升沿,命令和數據通過(guò)SI引腳送入MCP2515,在時(shí)鐘下降沿通過(guò)SO引腳把數據從MCP2515中讀出。TMS320F2812通過(guò)SPI總線(xiàn)讀取MCP2515接收緩沖器里的數據,MCP2515對CAN總線(xiàn)的數據發(fā)送則沒(méi)有限制,只要用TMS320F2812通過(guò)SPI接口將待發(fā)送的數據寫(xiě)入MCP2515的發(fā)送緩沖器,然后再調用發(fā)送請求命令即可將數據發(fā)送到CAN總線(xiàn)上。

b.JPG


TMS320F2812通過(guò)標準SPI讀寫(xiě)命令,對MCP2515寄存器進(jìn)行讀寫(xiě)操作,完成系統CAN總線(xiàn)的收發(fā),最終實(shí)現系統CAN總線(xiàn)的通信。TMS320F2 812和MCP2515的通信指令有復位指令、讀指令、讀RX緩沖器指令、寫(xiě)指令、裝載TX緩沖器指令、請求發(fā)送(RTS)指令、讀狀態(tài)指令、RX狀態(tài)指令和位修改指令等8條指令。

3 軟件設計
設計中,采用外部中斷方式實(shí)現CAN總線(xiàn)數據的接收,采用定時(shí)中斷的方式實(shí)現CAN數據的發(fā)送。軟件設計的難點(diǎn)在于MCP2515的初始化和CAN總線(xiàn)數據的收發(fā)程序。
3.1 MCP2515的初始化
MCP2515有用的寄存器有117個(gè),其中包括17個(gè)控制寄存器,有配置模式、正常模式、休眠模式、監聽(tīng)模式和環(huán)回模式等5種工作模式。M CP2515的正常工作關(guān)鍵在于對其進(jìn)行初始化處理,在初始化之前,首先必須通過(guò)TMS320F2812給MCP2515發(fā)送一個(gè)復位指令,使其進(jìn)入配置模式,然后才能對其進(jìn)行初始化。MCP2515的初始化還包括設置波特率寄存器、設置發(fā)送/接收控制寄存器、設置驗收屏蔽/濾波寄存器等。
3.2 MCP2515的數據接收
MCP2515的RXB0和RXB1兩個(gè)全接收緩沖器均配備一個(gè)驗收屏蔽寄存器和兩個(gè)驗收濾波寄存器。RXB0比RXB1具有更高的優(yōu)先級。當系統有報文數據時(shí),如果CANINTE.RXnIE的相應位被置1,MCP2515的INT管腳會(huì )產(chǎn)生一個(gè)巾斷信號,顯示有報文收到,與其對應的接收緩沖器的CANI NTF.RxnIF位將置位,接收緩沖器中的報文只要接收處理完畢,TMS320F2812就應當立即清零該位以準備接收下一條報文。
3.3 MCP2515的數據發(fā)送
MCP2515的3個(gè)發(fā)送緩沖器均有一個(gè)TxBnCTRL寄存器控制報文的發(fā)送條件、對應的發(fā)送優(yōu)先級以及報文發(fā)送時(shí)的狀態(tài)。在寫(xiě)入發(fā)送緩沖器之前,必須將TxBnCTRL TXREQ位清零,確保發(fā)送緩沖器中沒(méi)有等待發(fā)送的報文。通過(guò)TxBnCTRL TXREQ位置1,可以啟動(dòng)相應的發(fā)送緩沖器準備發(fā)送報文,一旦檢測到總線(xiàn)空閑時(shí),就會(huì )啟動(dòng)報文發(fā)送。報文發(fā)送成功TxBnCTRL.TXREQ位清零,CANINTF TXnIF置位,如果同時(shí)ANINTE.Txn IE被置位,則會(huì )產(chǎn)生發(fā)送中斷。

隔離器相關(guān)文章:隔離器原理

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

關(guān)鍵詞: 2515 MCP CAN 總線(xiàn)

評論


相關(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>