<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è) > 模擬技術(shù) > 設計應用 > 基于DSPIC30F3013的CAN總線(xiàn)數據采集系統方案

基于DSPIC30F3013的CAN總線(xiàn)數據采集系統方案

作者: 時(shí)間:2013-09-10 來(lái)源:網(wǎng)絡(luò ) 收藏
G-BOTTOM: 0px; MARGIN: 20px 0px 0px; WORD-SPACING: 0px; FONT: 14px/25px 宋體, arial; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">CAN協(xié)議控制器采用Microchip公司生產(chǎn)的MCP2515。MCP2515是帶有SPI接口的獨立CAN控制器,它完全支持CANV2.0B技術(shù)規范,通信速率為1Mb/s,包括2個(gè)接收緩沖器、6個(gè)29位驗收濾波寄存器、2個(gè)29位驗收屏蔽寄存器、3個(gè)具有優(yōu)先級設定及發(fā)送中止的發(fā)送緩沖器、高速SPI接口(10MHz)。

  MCP2515與MCU的接口可以靈活配置??赏ㄟ^(guò)引腳(如TXORTS)與MCU的數字I/O腳直接相連,利用數字I/O的讀寫(xiě)功能控制MCP2515的狀態(tài);也可以直接使用MCP2515的SPI指令集來(lái)實(shí)現所有的功能。用于控制MCP2515的SPI指令集如表1所列。

  基于DSPIC30F3013的CAN總線(xiàn)數據采集系統方案

  dsPIC30F3013通過(guò)SPI接口與MCP2515進(jìn)行通信,dsPIC30F3013的SPI模塊工作在主控模式,MCP2515工作在從動(dòng)模式。dsPIC30F3013通過(guò)調用SPI指令來(lái)訪(fǎng)問(wèn)MCP2515的內部寄存器。

  MCP2551是一個(gè)可容錯的高速CAN收發(fā)器,它完全符合ISO-11898標準,包括能滿(mǎn)足24 V電壓要求。它的工作速率可高達1 Mb/s。

  2 軟件設計

  dsPIC30F3013作為控制核心,它承擔著(zhù)處理和CAN通信的任務(wù)。部分的工作流程如圖4所示。

  基于DSPIC30F3013的CAN總線(xiàn)數據采集系統方案

  dsPIC30F3013的12位ADC模塊包含一塊ADCBUFO至ADCBUFF的16字雙口只讀緩沖區,對ADC轉換結果進(jìn)行緩沖。本應用采樣3路信號,并用掃描輸入,經(jīng)過(guò)12次ADC轉換后,每次轉換的數據依次寫(xiě)入ADCBUF0至ADCBUFB。即代號為0、3、6、9的AD-CBUF中存放的是同一個(gè)信號的不同時(shí)間的采樣值,將這4個(gè)緩沖器的結果相加,然后再右移2位,即可實(shí)現該信號的4次平均值數字濾波。其他兩個(gè)信號存放在與之相關(guān)的ADCBUF中,處理方法與此相同。

  MCP2515的SPI接口支持0,0和1,1運行模式。外部數據和命令通過(guò)SI引腳傳送到器件中,且數據在SCK時(shí)鐘信號的上升沿傳送進(jìn)去,在SCK的下降沿通過(guò)SO引腳傳送出去。CS片選引腳設置為低電平后,MCP2515希望收到的第一個(gè)字節是指令/命令字節,這就要求在調用一個(gè)命令時(shí),要先把CS引腳拉升為高電平然后再降低為低電平。使用裝載TX緩沖器指令,取消了一般寫(xiě)命令所需的8位地址,只需選擇地址指針設置的6個(gè)地址之一,便可快速地將數據寫(xiě)入發(fā)送緩沖器。

  下面以MCP2515的裝載TX緩沖器為例來(lái)說(shuō)明數據的發(fā)送過(guò)程。裝載TX緩沖器的時(shí)序如圖5所示。本應用有3路信號,每一路信號都要求精確到小數點(diǎn)后2位,所以經(jīng)過(guò)處理后的數據格式使用浮點(diǎn)型。一個(gè)浮點(diǎn)數需要占用4字節,為了使監控中心易于管理,用包含4字節數據長(cháng)度的標準數據幀來(lái)發(fā)送數據?,F以裝載TX緩沖器0為例說(shuō)明一次數據發(fā)送操作,如圖6所示。

  基于DSPIC30F3013的CAN總線(xiàn)數據采集系統方案

  dsPIC30F3013的SPI模塊在數據發(fā)送和接收時(shí)有8位和16位兩種工作模式可選。MCP2515的SPI指令、內部寄存器地址及數據都是8位的,所以在初始化SPI模塊時(shí),清零MODE16(SPI1CON《10》),將通信數據配置為8位寬度。

  結語(yǔ)

  本文介紹了一種以Microchip公司dsPIC30F3013為控制核心,以MCP2515為CAN控制器和以MCP2551作為CAN收發(fā)器的系統。該系統與傳感器組成一個(gè)CAN節點(diǎn),有效地改善了工控系統中監控部分線(xiàn)路布局范圍廣、布線(xiàn)凌亂、抗干擾能力差的現狀,同時(shí),使整個(gè)監控系統更易于擴展。實(shí)踐證明,這種設計是可靠的、高性能的



評論


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