男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
TMS320C24x DSP控制器上的CAN控制器
TMS320C24x DSP控制器上的CAN控制器
 更新時(shí)間:2009-6-5 9:10:48  點(diǎn)擊數(shù):2
【字體: 字體顏色

摘 要:德州儀器(TI)的TMS320F241、TMS320C241及TMS320F243數(shù)字信號(hào)處理器(DSP)控制器包括片上控制器局域網(wǎng)(CAN)模塊。該模塊是一種FullCAN控制器(規(guī)范2.0B)。該應(yīng)用報(bào)告將介紹 TMS320X241/3CAN模塊,其中也包括了針對(duì)片上CAN模塊不同操作模式的軟件示例,及采用CAN總線控制三相感應(yīng)馬達(dá)速度的應(yīng)用示例。

TMS320X241/TMS320F243CAN模塊
---關(guān)于CAN
 ---控制器區(qū)域網(wǎng)(CAN)是一種多主控串行總線,其使用廣播向所有CAN節(jié)點(diǎn)發(fā)送消息。CAN協(xié)議比其他通信協(xié)議更具優(yōu)勢(shì)。舉例而言,CAN協(xié)議提供了很好的性價(jià)比。它可實(shí)現(xiàn)快速的數(shù)據(jù)傳輸速度(高達(dá)1Mbps),可實(shí)施于實(shí)時(shí)系統(tǒng)。此外,數(shù)據(jù)可靠性高,錯(cuò)誤檢測(cè)功能成熟且強(qiáng)大可靠。CAN也非常靈活,可以進(jìn)行熱插拔。
---CAN協(xié)議不是用物理地址與節(jié)點(diǎn)聯(lián)系,而是發(fā)送帶有標(biāo)志符的消息(message),這樣不同的節(jié)點(diǎn)可通過標(biāo)志符辨認(rèn)消息。標(biāo)志符由兩個(gè)功能:既可用于消息過濾,又可用于確定消息優(yōu)先級(jí)。ID決定所發(fā)送的消息是否將由特定的CAN模塊接收,當(dāng)兩個(gè)或更多節(jié)點(diǎn)需要同時(shí)發(fā)送消息時(shí)還可決定消息的優(yōu)先級(jí)。
---DSP控制器需要連接至CAN總線上的收發(fā)器。CAN總線由雙絞線制成。傳輸速率取決于總線長(zhǎng)度。就總線低于40m的情況而言,傳輸速率高達(dá)1Mbps。DSP控制器可連接至SN75LBC031、TPIC8233及TPIC82501TI CAN收發(fā)器。
CAN消息幀有以下不同類型:CAN數(shù)據(jù)幀從發(fā)送器向一個(gè)或多個(gè)接收機(jī)發(fā)送數(shù)據(jù)(0~8字節(jié));CAN遠(yuǎn)程幀用于請(qǐng)求與指定標(biāo)志符相關(guān)的數(shù)據(jù)幀的發(fā)送。幀可為標(biāo)準(zhǔn)幀或擴(kuò)展幀。標(biāo)準(zhǔn)幀包括11位ID,而擴(kuò)展幀包括29位ID。
---TMS320C241、TMS320F241及TMS320F243 CAN模塊
---TMS320x241 與TMS320F243 CAN模塊是FullCAN控制器。它包括用于發(fā)送與接收管理及幀存儲(chǔ)的信息處理程序,而且所需的CPU開銷比BasicCAN控制器小。規(guī)范為 CAN2.0B Active,也就是說模塊可收發(fā)標(biāo)準(zhǔn)幀(11位標(biāo)志符)及擴(kuò)展幀(29位標(biāo)志符)。
---外置為16位。控制/狀態(tài)寄存器及CAN郵箱的存取(access)也均為16位。
控制器有6個(gè)用于0~8字節(jié)數(shù)據(jù)長(zhǎng)度對(duì)象的郵箱:
---兩個(gè)接收郵箱(郵箱0與1)
---兩個(gè)發(fā)送郵箱(郵箱4與5)
---兩個(gè)可配置發(fā)送/接收郵箱(郵箱2與3)
---CAN模塊包括15個(gè)不同的16位寄存器:
---● 控制寄存器
---MDER:郵箱方向(Direction)/啟用寄存器,啟用或禁用郵箱并進(jìn)行郵箱2與3的配置
---TCR:用于發(fā)送消息的發(fā)送控制寄存器
---RCR:用于接收消息的接收控制寄存器
---MCR:主控制寄存器,用于更改位時(shí)序(timing)配置,例如寫入CAN RAM或在自檢模式中配置芯片
---BCR1與BCR2:配置位定時(shí)的位配置寄存器
---● 狀態(tài)寄存器
---ESR:用于顯示錯(cuò)誤的錯(cuò)誤狀態(tài)寄存器
---GRS:全局狀態(tài)寄存器(Global Status Register)
---CEC:CAN錯(cuò)誤計(jì)數(shù)寄存器
---● 中斷寄存器
---IFR:中斷標(biāo)志寄存器
---IMR:中斷屏蔽寄存器
---● 本地接收屏蔽寄存器
---LAM0H與LAM0L:針對(duì)郵箱0與1的本地接收屏蔽寄存器
---LAM1H與LAM1L:針對(duì)郵箱2與3的本地接收屏蔽寄存器
上述寄存器位于數(shù)據(jù)存儲(chǔ)器中,地址從0x7100h到0x710Fh(見圖4)。
---CAN模塊包括6個(gè)郵箱,每個(gè)郵箱都分為以下幾部分:
---● MSGIDL與MSIDH包括郵箱標(biāo)志符。
---● MSGCTRL(消息控制字段)包括待收發(fā)的消息長(zhǎng)度及RTR位(用于發(fā)送遠(yuǎn)程幀的遠(yuǎn)程發(fā)送請(qǐng)求)。
---● DATA_A到DATA_D包括數(shù)據(jù)。數(shù)據(jù)分為4個(gè)字或8字節(jié)。

不同的操作模式
 ---
初始化CAN模塊
---如欲使用CAN模塊,CAN寄存器及CANRAM必須進(jìn)行初始化。
---位定時(shí)與同步
---標(biāo)稱位時(shí)間在CAN總線的每個(gè)節(jié)點(diǎn)上均可編程,且在每個(gè)節(jié)點(diǎn)上必須相等。任何節(jié)點(diǎn)接收幀時(shí),接收機(jī)都必須與發(fā)送器同步。共有兩種同步類型:
---硬同步:當(dāng)接收到幀起始時(shí)
---再同步:用于補(bǔ)償發(fā)送器與接收機(jī)振蕩器之間的振蕩頻率漂移與相位差。TSEG1可延長(zhǎng),而TSEG2可縮短,以進(jìn)行采樣點(diǎn)位置移動(dòng),最大量為SJW(同步跳寬(jump width))。
---SYNCSEG:用于實(shí)現(xiàn)總線上節(jié)點(diǎn)同步的分段(segment)。段中將出現(xiàn)位邊緣(bit edge)。
---PROPSEG:用于補(bǔ)償網(wǎng)絡(luò)中物理延遲時(shí)間的時(shí)段。
---標(biāo)稱位時(shí)間除以時(shí)間量得到:
---1位時(shí)間=(TSEG1+TSEG2+1)*Length_of_1_time_quantum
---Length_of_time_quantum=(BRP+1)/ICLK
---BRP=波特率預(yù)定標(biāo)器
---ICLK=時(shí)鐘頻率=20MHz
因此,就傳輸速率為1Mbps(位長(zhǎng)=1ms)的情況而言,以下為正確設(shè)置:
---BRP=0TSEG1=5且TSEG2=4
---BRP=1TSEG1=12且TSEG2=7
---用戶可對(duì)上述參數(shù)進(jìn)行配置(在BCR寄存器中)。
---說明:1)BRP:波特率預(yù)定標(biāo)器
---2)SBG:下降沿同步
---3)SJW:同步跳寬(jump width)
---4)SAM:采樣點(diǎn)設(shè)置
---如欲更改位定時(shí)配置,則應(yīng):
步驟1:在MCR寄存器中設(shè)置更改配置請(qǐng)求位。
---CANMCR=0001000000000000b
---位12CCR=1≥更改配置請(qǐng)求
---步驟2:設(shè)置BCR寄存器(位配置寄存器)。
---總線上所有節(jié)點(diǎn)的標(biāo)稱位時(shí)間及波特率預(yù)定標(biāo)器必須相同。如TSEG1=TSEG2=0,則CAN不能激活。
---TSEG1≥TSEG2≥2如SBG=0
---CANBCR2=0000000000000000b
---波特率預(yù)定標(biāo)器=0
---CANBCR1=0000000101010111b
---位10SBG=0=>下降沿同步
---位8-9SJW=10=>同步跳寬
---位7SAM=0=>CAN模塊采樣僅一次
---位3-6TSEG1=1010
---位0-2TSEG2=111
---步驟3:請(qǐng)求正常模式。
---CANMCR=0000000000000000b
---CCE=更改配置啟用(全局狀態(tài)寄存器)

 ---
郵箱初始化
---每個(gè)數(shù)據(jù)幀分為以下字段:
---● 仲裁場(chǎng)(arbitration field)包括標(biāo)志符與RTR(遠(yuǎn)程發(fā)送請(qǐng)求)位。
---● 控制字段(controlfield)包括DLC位(數(shù)據(jù)長(zhǎng)度)。
---● 數(shù)據(jù)字段
 ---
用戶設(shè)置郵箱內(nèi)容可對(duì)以下字段進(jìn)行編程:
---● MSGIDL與MSIDH包括郵箱標(biāo)志符。
---● MSGCTRL(消息控制字段)包括消息長(zhǎng)度與RTR位(用于發(fā)送遠(yuǎn)程幀的遠(yuǎn)程發(fā)送請(qǐng)求)。
---● DATA_A、DATA_B、DATA_C與DATA_D包含數(shù)據(jù)。數(shù)據(jù)分為4個(gè)字或8字節(jié)。
---初始化郵箱的步驟如下:
---步驟1:禁用郵箱,在CANMDER中寫入0。
---CANMDER=0000000000000000b
---步驟2:在CANMCR中設(shè)置更改數(shù)據(jù)字段請(qǐng)求位。
---CANMCR=0000000100000000b位8CDR=1
步驟3:更改郵箱內(nèi)容(數(shù)據(jù)、控制與標(biāo)志符字段)。數(shù)據(jù)只能在發(fā)送郵箱中設(shè)置(2、3、4或5)。
步驟4:返回正常模式。
CANMCR=0000000000000000b
步驟5:?jiǎn)⒂绵]箱。
CANMDER=0000000000000100b
位2ME2=1=>郵箱2啟用
位6MD2=0=>郵箱2配置為發(fā)送郵箱

發(fā)送消息
發(fā)送消息步驟如下。
步驟1:發(fā)送郵箱初始化。
→禁用郵箱,在CANMDER中寫入0。
CANMDER=0000000000000000b
→要求更改數(shù)據(jù)字段請(qǐng)求,在CANMCR中寫入。
CANMCR=0000000100000000b
bit8CDR=1
→為發(fā)送郵箱設(shè)置消息ID。在CANMSGIDxH及CANMSGIDnL中寫入,其中n=2、3、4或5。
CANMSGIDnH=1110000000000000b
bit15IDE=1=>待發(fā)送消息帶有擴(kuò)展標(biāo)志符(29位)
bit14AME=1=>采用相應(yīng)接收屏蔽(LAM寄存器)
bit13AAM=1=>自動(dòng)應(yīng)答模式位設(shè)置。如郵箱接收遠(yuǎn)程幀,則其響應(yīng)時(shí)將內(nèi)容回送
bit12-0:標(biāo)志符上部。
CANMSGIDnL=0000000000001111b
標(biāo)志符下部
→設(shè)置消息控制字段。在CANMSGCTRLn中寫入,其中n=2、3、4或5。如待發(fā)送消息是遠(yuǎn)程幀,則RTR位將置為1。消息長(zhǎng)度將在此選擇。
CANMSGCTRLn=0000000000001000b
bit5RTR=0=>將發(fā)送一個(gè)數(shù)據(jù)幀(不是遠(yuǎn)程幀)
bit0-4DLC=1000=>數(shù)據(jù)長(zhǎng)度=8bit
→創(chuàng)建消息(僅用于數(shù)據(jù)幀)。消息將寫入CANMBXnA、CANMBXnB、CANMBXnC與CANMBXnD(其中n=2、3、4或5)。
CANMBXnA=0ABCDh
CANMBXnB=0123h
CANMBXnC=0EF32h
CANMBXnD=6789h
→請(qǐng)求正常操作,將CANMCR中的位8復(fù)位。
CANMCR=0000000000000000b
→啟用郵箱,在CANMDER寄存器中寫入。如郵箱2或3已選擇,則其應(yīng)配置為發(fā)送郵箱(CANDER寄存器)。
CANMDER=0000000000000100b
bit2ME2=1=>郵箱2啟用
bit6MD2=0=>郵箱2配置為發(fā)送郵箱
步驟2:請(qǐng)求發(fā)送消息,在TCR寄存器中設(shè)置TRS位。
 位4TRS2=1=>郵箱2的發(fā)送請(qǐng)求
步驟3:等待發(fā)送確認(rèn)(TA=1,在TCR寄存器中)與/或作為郵箱標(biāo)志(CANIFR寄存器)。
步驟4:進(jìn)行TA與發(fā)送標(biāo)志復(fù)位,“1”應(yīng)寫入TA(TCR寄存器)。
TCR=0001000000000000b
位12TA2=1=>進(jìn)行郵箱2的TA及中斷標(biāo)志復(fù)位。

接收消息
接收濾波器(Acceptance Filter)如何工作
在已接收消息ID與接收郵箱ID中接收屏蔽寄存器未屏蔽的位應(yīng)相同。如果情況不是這樣,則消息不被接受或不被存儲(chǔ)。本地接收屏蔽可通過將消息標(biāo)志符高字(MSGIDn)中的AME(接收屏蔽啟用位)定為0加以禁用。隨后所有標(biāo)志符位必須匹配以存儲(chǔ)消息。
如何進(jìn)行CAN模塊編程
 LAM1H=1000000000000000b
位15LAMI=可接收1標(biāo)準(zhǔn)與擴(kuò)展幀。
位12-00:相應(yīng)的ID位未屏蔽。就上述位而言,已接收消息ID必須與郵箱ID相同。
LAM1L=1111111111111111b
位15-0 1:屏蔽位
步驟2:設(shè)置郵箱標(biāo)志符及控制
→禁用郵箱,在MDER中寫入0。
CANMDER=0000000000000000b
→要求更改數(shù)據(jù)字段請(qǐng)求,在MCR寄存器中寫入。
CANMCR=0000000100000000b位8CDR=1
→設(shè)置發(fā)送郵箱消息ID。在MSGIDxH與MSGIDnL中寫入,其中n=2、3、4或5。
CANMSGIDnH=1110000000000000b
位15IDE=1=>接收的消息帶有擴(kuò)展標(biāo)志符(29位)
位14AME=1=>采用相應(yīng)的接收屏蔽(LAM寄存器)
位13AAM=1=>對(duì)接收機(jī)無影響
CANMSGIDnL=0000000000001110b標(biāo)志符下部
→設(shè)置消息控制字段。在MSGCTRLn中寫入,其中n=2、3、4或5。如果待發(fā)送消息為遠(yuǎn)程幀,則RTR位將置為1。消息長(zhǎng)度將在此選擇。
CANMSGCTRLn=0000000000001000b
 位0-4DLC=1000=>數(shù)據(jù)長(zhǎng)度=8bit
→請(qǐng)求正常操作,將MCR中的位8復(fù)位。
CANMCR=0000000000000000b
→啟用郵箱,在MDER寄存器中寫入。如選擇郵箱2或3,必須將其配置為接收郵箱(MDER寄存器)。
CANMDER=0000000001000100b
位2ME2=1=>郵箱2啟用
位6MD2=1=>郵箱2配置為接收郵箱
步驟3:等待接收確認(rèn)(RCR寄存器中的RMP位)及CANIFR中的郵箱中斷標(biāo)志。
步驟4:如欲進(jìn)行RMP與接收標(biāo)志復(fù)位,RMP中必須寫入“1”(在接收控制寄存器中)。
CANRCR=0000000001000000b
位6RMP2=1=>將RMP2與郵箱2中斷標(biāo)志復(fù)位
數(shù)據(jù)存儲(chǔ)于MBXnA、MBXnB、MBXnC及MBXnD中。

自檢模式
---什么是自檢模式?
---TMS320F241/3 CAN模塊可在回送模式下工作。它可接收自身發(fā)送的消息。該模塊生成其自身的確認(rèn)信號(hào)。總線無須連接至模塊該模式即可工作,因此可以方便地測(cè)試程序。
---如何使用自檢模式?
---CAN模塊初始化后,用戶可通過在MCR寄存器中設(shè)置自檢模式位請(qǐng)求自檢模式。
---CANMCR=00000000010000000b
---位6:STM=1.模塊處于自檢模式。
---發(fā)送的消息將接收并存儲(chǔ)于適當(dāng)?shù)慕邮锗]箱中。
---自檢模式的局限性:
---自檢模式中未實(shí)施自動(dòng)應(yīng)答模式設(shè)置情況下的遠(yuǎn)程幀處理。該模式不能用于遠(yuǎn)程幀測(cè)試。
---遠(yuǎn)程幀
---遠(yuǎn)程幀與數(shù)據(jù)幀形狀相同,但不含數(shù)據(jù)。遠(yuǎn)程幀的RTR(遠(yuǎn)程發(fā)送請(qǐng)求)位設(shè)為1。與數(shù)據(jù)幀類似,其也可為標(biāo)準(zhǔn)幀或擴(kuò)展幀(11位ID或29位ID)。
---遠(yuǎn)程幀通常用于請(qǐng)求信息。節(jié)點(diǎn)A發(fā)送遠(yuǎn)程幀至節(jié)點(diǎn)B。如果節(jié)點(diǎn)B待發(fā)送的消息與遠(yuǎn)程幀的標(biāo)志符相同,則其將做出應(yīng)答,發(fā)送相應(yīng)的數(shù)據(jù)幀至總線。

---如何進(jìn)行遠(yuǎn)程幀編程
 ---
發(fā)送遠(yuǎn)程幀:
● 使用2、3、4或5。郵箱2及3可配置為發(fā)送郵箱或接收郵箱。
● 在MSGCTRLn字段中設(shè)置RTR(遠(yuǎn)程發(fā)送請(qǐng)求)位為1。
● 設(shè)置TRS(發(fā)送請(qǐng)求設(shè)置)位為1。
● 遠(yuǎn)程幀將發(fā)送至CAN總線。如果遠(yuǎn)程幀自接收郵箱發(fā)送(2或3),則發(fā)送成功后不設(shè)置TA(發(fā)送確認(rèn))或郵箱標(biāo)志。TRS位隨后復(fù)位。
對(duì)遠(yuǎn)程幀自動(dòng)應(yīng)答
 ● 僅將郵箱2或3配置為發(fā)送郵箱
● 在MSGIDn中設(shè)置自動(dòng)應(yīng)答模式位(AAM)。
● 如果節(jié)點(diǎn)接收的遠(yuǎn)程幀ID與郵箱ID相同,則其將通過發(fā)送數(shù)據(jù)幀進(jìn)行自動(dòng)應(yīng)答(對(duì)禁用的本地接收屏蔽而言)。
發(fā)送遠(yuǎn)程幀至接收郵箱
● 僅將郵箱0、1或2、3配置為接收郵箱。
● 消息處理與數(shù)據(jù)幀一樣。設(shè)置RMP(接收消息等待(Receive Message Pending))位及RFP(遠(yuǎn)程幀等待)位。
● CPU處理情況。
示例
步驟1:從郵箱5發(fā)送遠(yuǎn)程幀(節(jié)點(diǎn)A)
設(shè)置郵箱5的RTR(遠(yuǎn)程發(fā)送請(qǐng)求)位。郵箱5將在接到請(qǐng)求時(shí)發(fā)送遠(yuǎn)程幀。隨后,當(dāng)設(shè)置TCR寄存器(發(fā)送控制寄存器)中相應(yīng)的TRS(發(fā)送請(qǐng)求設(shè)置)位時(shí),遠(yuǎn)程幀將在CAN總線上發(fā)送。
本地接收屏蔽禁用時(shí)(MSGID2H位14),所發(fā)送的ID位(郵箱5節(jié)點(diǎn)A)與接收郵箱ID位(郵箱2節(jié)點(diǎn)B)必須匹配才能接收該幀。節(jié)點(diǎn)B辨認(rèn)遠(yuǎn)程幀ID。郵箱5(節(jié)點(diǎn)A)與郵箱2(節(jié)點(diǎn)B)帶有相同的29位標(biāo)志符。
郵箱5設(shè)置:
MSGID5H=1101001100001111b
Bit15:1擴(kuò)展ID
Bit14:1接收屏蔽啟用
Bit13:0未設(shè)置自動(dòng)應(yīng)答模式
Bit12-0:標(biāo)志符
MSGID5L=1111111111111111b
Bit15-0:標(biāo)志符
MSGCTRL5=0000000000011000b
Bit4:1遠(yuǎn)程發(fā)送請(qǐng)求

郵箱2設(shè)置:
 Bit15:1擴(kuò)展ID
Bit14:0接收屏蔽禁用
Bit13:1設(shè)置自動(dòng)應(yīng)答模式
Bit12-0:標(biāo)志符
MSGID2L=1111111111111111b
Bit15-0:標(biāo)志符
MSGCTRL2=0000000000001000b
Bit4:0未設(shè)置RTR
Bit3-0:1000數(shù)據(jù)長(zhǎng)度=8bit

步驟2:節(jié)點(diǎn)B自動(dòng)應(yīng)答
在節(jié)點(diǎn)B上設(shè)置AAM(自動(dòng)接收模式)位時(shí),郵箱2通過在CAN總線上發(fā)送相應(yīng)數(shù)據(jù)幀自動(dòng)應(yīng)答。在節(jié)點(diǎn)A上,郵箱0啟用本地接收屏蔽(MSGID0H、位14)。當(dāng)節(jié)點(diǎn)B發(fā)送數(shù)據(jù)幀的未屏蔽位與郵箱0的ID位相匹配時(shí),郵箱0接收并存儲(chǔ)數(shù)據(jù)幀。
郵箱0設(shè)置:
LAM0H=1000000000000000b
Bit15:1接收的擴(kuò)展及標(biāo)準(zhǔn)ID
Bit12-0:0發(fā)送ID與郵箱ID必須完全匹配
LAM0L=1111111111111111b
Bit15-0:1接收0或1
MSGID0H=1101001100001111b
Bit15:1擴(kuò)展ID
Bit14:1接收屏蔽啟用
Bit13:0未設(shè)置自動(dòng)應(yīng)答模式
Bit12-0:標(biāo)志符
MSGID0L=1010101011110000b
Bit15-0:標(biāo)志符
MSGCTRL5=0000000000001000b
Bit3-0:1000數(shù)據(jù)長(zhǎng)度=8bit

CAN中斷
 ● CANIFR:中斷標(biāo)志寄存器
● CANIMR:中斷屏蔽寄存器
有兩種不同類型的中斷:
● 如郵箱收發(fā)消息,由郵箱產(chǎn)生的中斷。每個(gè)郵箱在CANIFR上都有中斷標(biāo)志位,在CANIMR上都有中斷屏蔽位。
● 錯(cuò)誤生成的中斷。以下事件將產(chǎn)生錯(cuò)誤中斷:
 - 寫入拒絕
- 喚醒
- 接收消息丟失
- 總線關(guān)閉
- 錯(cuò)誤嚴(yán)重(error passive)
- 警告級(jí)
這些中斷可發(fā)出高優(yōu)先級(jí)或低優(yōu)先級(jí)請(qǐng)求。CANIMR的位15與7用于選擇優(yōu)先級(jí)。可將兩個(gè)中斷請(qǐng)求發(fā)送至外設(shè)中斷擴(kuò)展(PIE):
● CAN郵箱中斷(高優(yōu)先級(jí)或低優(yōu)先級(jí))
● CAN錯(cuò)誤中斷(高優(yōu)先級(jí)或低優(yōu)先級(jí))
錯(cuò)誤處理
CAN模塊包括錯(cuò)誤檢測(cè)、內(nèi)部錯(cuò)誤處理機(jī)制及錯(cuò)誤信號(hào)發(fā)送。這提供了強(qiáng)大可靠的數(shù)據(jù)處理機(jī)制。
CAN模塊檢測(cè)以下錯(cuò)誤類型:
● 位錯(cuò)誤,如果被發(fā)送位與接收位不同。
● 位填充錯(cuò)誤。在發(fā)送5個(gè)連續(xù)相等位后,發(fā)送器應(yīng)在位流中插入帶有補(bǔ)充值的填充位,它將由接收機(jī)移除。
● CRC錯(cuò)誤,如接收的CRC(循環(huán)冗余校驗(yàn))代碼與發(fā)送的CRC代碼不匹配。
● ACK錯(cuò)誤,如發(fā)送節(jié)點(diǎn)未從接收機(jī)接收到ACK。
● 形式錯(cuò)誤,如不符合幀格式。
上述錯(cuò)誤記錄在錯(cuò)誤狀態(tài)寄存器中:
檢測(cè)到錯(cuò)誤的每個(gè)節(jié)點(diǎn)會(huì)增加錯(cuò)誤計(jì)數(shù)(發(fā)送或接收)。這兩個(gè)計(jì)數(shù)位于CAN錯(cuò)誤計(jì)數(shù)寄存器中(CEC)。
CAN模塊可為三種狀態(tài):
● 錯(cuò)誤激活狀態(tài)(Error Active State):如發(fā)送與接收錯(cuò)誤計(jì)數(shù)低于128。如二者計(jì)數(shù)之一達(dá)到96,則在CANIFR寄存器中設(shè)置標(biāo)志(位0,警告標(biāo)志),且錯(cuò)誤狀態(tài)寄存器的位0等于1。
● 錯(cuò)誤嚴(yán)重狀態(tài)(Error Passive State):如果發(fā)送錯(cuò)誤計(jì)數(shù)或接收錯(cuò)誤計(jì)數(shù)在127~255之間。設(shè)置CANIFR(位1)中的標(biāo)志,且錯(cuò)誤狀態(tài)寄存器中的EP位等于1。
 總線關(guān)閉后重新連接模塊有兩種不同的解決方案:
● 設(shè)置MCR寄存器的ABO(自動(dòng)總線接通)位。模塊將在128*11個(gè)連續(xù)隱性位后返回總線接通狀態(tài)。
 

馬達(dá)控制應(yīng)用
概述
---本應(yīng)用的目的在于通過連接至馬達(dá)驅(qū)動(dòng)器的CAN總線發(fā)送速度命令以改變馬達(dá)速度。
---為實(shí)施本應(yīng)用,將采用一條雙絞線(作為CAN總線)、兩個(gè)TI SN75LBC031收發(fā)器及兩個(gè)TMS320F243 DSP。受控馬達(dá)是三相交流感應(yīng)馬達(dá)。
 ---電源連接至TMS320F243 DSP控制器的ADC0輸入。該值作為馬達(dá)控制的目標(biāo)頻率讀取。第一個(gè)DSP(節(jié)點(diǎn)A)用ADC模塊將該值轉(zhuǎn)換為數(shù)字值,隨后按比例確定這些值。0V對(duì)應(yīng)于200rpm的頻率,而5V對(duì)應(yīng)于400rpm。數(shù)據(jù)存儲(chǔ)于CAN郵箱中,隨后由CAN總線發(fā)送至第二個(gè)DSP(節(jié)點(diǎn)B)。該DSP用接收到的目標(biāo)頻率控制馬達(dá)。
---馬達(dá)速度可通過改變ADC輸入電壓進(jìn)行實(shí)時(shí)更改。為了實(shí)施該應(yīng)用,我們需要兩種不同的程序。軟件在第一個(gè)節(jié)點(diǎn)上處理CAN總線中頻率目標(biāo)的發(fā)送。程序在第二個(gè)節(jié)點(diǎn)上處理頻率接收,并進(jìn)行馬達(dá)控制。
---節(jié)點(diǎn)A:從電源到CAN總線
---DSPA連接至電源(ADC0輸入)與收發(fā)器。運(yùn)行在該DSP上的程序稱作send_frequency.asm。該程序處理直流電與CAN模塊初始化、模數(shù)轉(zhuǎn)換、頻率縮放、頻率在郵箱中的存儲(chǔ)及發(fā)送頻率至CAN總線。圖20顯示了該過程。
---該程序中三次使用CAN:
● CAN初始化(郵箱與位定時(shí))
 ● 發(fā)送消息
---頻率存儲(chǔ)的原理與郵箱初始化相同。更新數(shù)據(jù)值之前,應(yīng)禁用郵箱,并進(jìn)行主控制寄存器中CCR位(更改配置請(qǐng)求)的設(shè)置。更改頻率后,應(yīng)清空該位,再啟用郵箱。
---節(jié)點(diǎn)B:馬達(dá)控制
---第二個(gè)DSP利用從CAN總線接收的目標(biāo)頻率值進(jìn)行馬達(dá)控制。
---在示例應(yīng)用中,我們采用了交流馬達(dá)的開放回路控制程序。馬達(dá)控制程序與中斷系統(tǒng)共同工作,它包括兩個(gè)重要部分:主程序與中斷服務(wù)程序(ISR)。
---在主程序中進(jìn)行不同的初始化,如CAN模塊初始化與PWM初始化。在主程序結(jié)尾處,事件管理器的下溢中斷啟用。
---在中斷服務(wù)程序中,將計(jì)算新的PWM因素,并對(duì)CAN總線接收到的新頻率目標(biāo)進(jìn)行調(diào)節(jié)。在該ISR中,如果接收的值不同于原值,則頻率目標(biāo)值將更新。
---CAN 代碼可分為兩部分:第一部分是CAN初始化,在此進(jìn)行CAN位定時(shí)設(shè)置及郵箱0(控制字段與標(biāo)志符)初始化;該部分位于主程序。第二部分在中斷服務(wù)程序中。如果從CAN總線上成功接收消息且該值已更改,則本部分將在變量FREQ_TRGT中處理消息副本。原FREQ_TRGT值從接收值中減去。如結(jié)果不為零,則更新FREQ_TRGT。
---如果成功從CAN總線接收,則設(shè)置郵箱中斷標(biāo)志與接收消息未決位。程序測(cè)試上述位(BIT指令)。如上述位已設(shè)置,則由下一指令清空。如值發(fā)生變化,接收的數(shù)據(jù)隨后拷貝到累加器與變量 FREQ_TRGT中。如未接收到郵箱標(biāo)志,或沒有消息等待(RMP位),則CAN_RD_END支路出現(xiàn)。

結(jié)論:CAN與DSP
---TMS320F241、TMS320C241與TMS320F243芯片包括片上CAN控制器。CAN是多主控串行總線,可在不同節(jié)點(diǎn)間實(shí)現(xiàn)高效數(shù)據(jù)傳輸。CAN是靈活、可靠、強(qiáng)大及標(biāo)準(zhǔn)化的協(xié)議,具備實(shí)時(shí)功能。
---DSP控制器可提高電動(dòng)馬達(dá)的效率,實(shí)現(xiàn)更高的性能與更低的成本,為傳統(tǒng)的微控制器提供更好的解決方案,并實(shí)現(xiàn)了更先進(jìn)的控制算法。

<!--插入廣告JS代碼-->
  • 上一篇: 同步控制和即時(shí)DSP的先進(jìn)混合訊號(hào)測(cè)試
  • 下一篇: 以DSP為核心的無線定位系統(tǒng)的方案設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1
    主站蜘蛛池模板: 文昌市| 巧家县| 铁力市| 呼和浩特市| 宁安市| 清涧县| 保定市| 泗洪县| 临沂市| 英德市| 松溪县| 绥江县| 兴海县| 乌鲁木齐市| 阿拉善左旗| 拜泉县| 元氏县| 化隆| 丹巴县| 景谷| 河间市| 中牟县| 合阳县| 东乌珠穆沁旗| 墨脱县| 高尔夫| 固安县| 平谷区| 永春县| 马鞍山市| 即墨市| 尚义县| 浪卡子县| 双辽市| 临颍县| 扬中市| 上思县| 万荣县| 金华市| 谷城县| 聊城市|