LF2407型DSP內(nèi)嵌eCAN模塊的檢測(cè)程序設(shè)計(jì)_第1頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、lf2407型dsp內(nèi)嵌ecan模塊的檢測(cè)程序設(shè)計(jì) lf2407型數(shù)字信號(hào)處理器()以其處理能力強(qiáng)(30 mi/s),外設(shè)功能模塊集成度高及存儲(chǔ)器容量大等特點(diǎn)廣泛應(yīng)用于數(shù)字化控制與通信領(lǐng)域。筆者以某車(chē)載武器系統(tǒng)的前期預(yù)研為背景,研究了該處理器內(nèi)嵌模塊ecan的檢測(cè)功能及其軟硬件實(shí)現(xiàn)過(guò)程。 2 檢測(cè)系統(tǒng)的功能與硬件構(gòu)成21 ecan控制模塊該控制器是一個(gè)16 bit的外圍器件,其特性有:(1)徹低支持can20b協(xié)議;(2)具有6個(gè)郵箱,其中mailbox2與mailtiox3可按工程需求配置為接收或發(fā)送郵箱,數(shù)據(jù)長(zhǎng)度為08字節(jié);(3)當(dāng)發(fā)送時(shí)出錯(cuò)或仲裁過(guò)程中數(shù)據(jù)走失時(shí),該控制器具有自動(dòng)重發(fā)功能

2、;(4)能夠通過(guò)軟件編程實(shí)現(xiàn)自檢測(cè)功能。對(duì)ecan模塊的操作分為對(duì)控制,狀態(tài)寄存器的拜訪(fǎng)以及對(duì)郵箱ram的讀寫(xiě)三個(gè)部分。這些寄存器與郵箱在內(nèi)存空間的分配1所示,其中,7200h"7230h所在ram區(qū)域?yàn)?個(gè)郵箱的分布地址。22 硬件的銜接對(duì)于lf2407型處理器而言,假如源代碼編譯后放在程序區(qū)0x0000地址開(kāi)頭的空間當(dāng)引腳napmc配置為mp方式時(shí)則007fff下空間被映射到外部存儲(chǔ)器,此時(shí)必需在dsp外有相應(yīng)的存儲(chǔ)器方可正常加載,否則就會(huì)向來(lái)提醒“data verificationfailed at address ox0p1ease verify target memory

3、andmempry map”的信息。當(dāng)引腳配置為mc方式,則00"7fff這段空間由片內(nèi)flash提供,代碼程序要放在片內(nèi)f1ash中,就必需用燒寫(xiě)操作完成。普通說(shuō)來(lái),前者適用于在線(xiàn)調(diào)試的開(kāi)發(fā)方式:對(duì)于已經(jīng)定型的軟件代碼,當(dāng)要脫機(jī)運(yùn)行時(shí)用后者較為便利。筆者選用外擴(kuò)存儲(chǔ)器的方式來(lái)完成*out文件的加載其中 74陽(yáng)8器件的功用是將cy7c1021型電路的內(nèi)存區(qū)域一分二,分離用作外擴(kuò)的程序空間與數(shù)據(jù)空間。2所示,pca82c250為驅(qū)動(dòng)器是lf2407內(nèi)嵌can控制器與特別總線(xiàn)之間所需要的接口電路,實(shí)現(xiàn)對(duì)總線(xiàn)的差動(dòng)發(fā)送與接收能力。在硬件銜接時(shí)要注重將rs引腳接地使pca82c250處于高速

4、模式下,而且為完成檢測(cè)功能,canh引腳和canl引腳應(yīng)通過(guò)阻值為120的終端匹配器相銜接。在項(xiàng)目開(kāi)發(fā)過(guò)程中,筆者用法帶isa接口的器驅(qū)動(dòng)板盡管不需要驅(qū)動(dòng)程序但還是要安裝setupc2xxexe文件否則在code composer集成開(kāi)發(fā)環(huán)境內(nèi)會(huì)浮現(xiàn)調(diào)試?yán)щy。3 軟件編程31 配置存儲(chǔ)器由于設(shè)計(jì)硬件時(shí)采納的是外擴(kuò)存儲(chǔ)器的方式。所以為了正確地加載輸出文件必需對(duì)cy7c1021作引導(dǎo)配置。詳細(xì)說(shuō)來(lái)就是修改initgel文件中的 startup函數(shù)(該函數(shù)在系統(tǒng)默認(rèn)狀態(tài)下為空函數(shù)。普通說(shuō)來(lái),每次進(jìn)人cede composer集成開(kāi)發(fā)環(huán)境時(shí),它都會(huì)被調(diào)用。對(duì)于硬件系統(tǒng)的初始化代碼常常放置于其內(nèi))。下面

5、給出主要的代碼語(yǔ)句:startup0gel_mapreset0;gel_mapadd(0x0000,0,0x7fff,1,1);gel_mapadd(0x8000,0,0xt000,1,1);gel_mapadd(0x0000,1,0x10000,l,1);gel_mapadd(0xffff,2,1,1,1);gel_mapono;gel_memoryfill(0xffff,2,l,ox40);*(volatile unsigned int*)si=0x0200;*(volatile unsigned int*)scsr2=0x000c;*(volatile unsigned int*)wdn

6、tr=ox006f;*(volatile unsigned int*)wdkey=0x055;*(volatile unsigned int*)wdkey=ox0aa;假如需要開(kāi)發(fā)相應(yīng)的flash燒寫(xiě)子程序可以參考此部分的格式完成。32 系統(tǒng)初始化或重新配置位定時(shí)器相應(yīng)的操作步驟如下:(1)設(shè)置canmcr寄存器中的轉(zhuǎn)變配置哀求位為1,即ccr=i:(2)推斷cangsr寄存器中的轉(zhuǎn)變配置使能位是否為1,即cce是否為l:(3)設(shè)置canbcr2和canbcrl寄存器以確定波特率、同步跳轉(zhuǎn)寬度及采樣次數(shù)等(4)清canmcr寄存器中的轉(zhuǎn)變配置哀求位為0即ccr=0(5)推斷cangsr寄存器中

7、的轉(zhuǎn)變配置使能位是否為0,即cce是否為0;(6)配置完成進(jìn)入正常工作模式。主要程序代碼如下:(*mcrb)=(*mcrb)10x00c0;(*canifr)=0xffff;(*canlamlh)=0x7fff(*canlamll)=oxffff;(*canmcr)=oxl040;while(*cangsr)&ox0010)=0);ccr假如不等于1則舉行軟件等待狀態(tài)(*canbcr2)=ox0002;(*canbcrl)=0x0023; baudrate=500 kbs(*canmc r)=(*canmcr)&0xefff;while(*cangsr)&0x0010)

8、=i);按can20b協(xié)議構(gòu)成的總線(xiàn)通信系統(tǒng),節(jié)點(diǎn)之間的波特率誤差容限要求相當(dāng)高。與rs232串行通信方式相比由于其幀長(zhǎng)遠(yuǎn)大于后者,考慮到累加效應(yīng)的影響,即便是很小的波特率誤差也會(huì)使數(shù)據(jù)交換失敗。波特率r的相關(guān)計(jì)算公式為:r=-fclk(brp+1)(tseg1+1)+(tseg2+1)+1 (1)其中,brp為預(yù)分頻系數(shù)fclk為lf2407的工作頻率,其值是外部晶振體頻率與鎖相環(huán)倍頻或分頻系數(shù)之積,時(shí)光段tseg1與tseg2在位配置寄存器bcr2中定義。本系統(tǒng)中晶體振蕩器頻率為15mhz,鎖相環(huán)倍頻系數(shù)為l,那么r=(15 mhz3)(4+1)+(3+1)+1),即05 mhz。33 郵

9、箱的初始化相關(guān)的流程3所示。部分代碼如下:(*canmder)=0x0040; 將郵箱2配置為接收、郵箱3為發(fā)送(*canmc r1=0x0140;(*canmsgid2h)=0x7fff;(*canmsgid2l)=0xffff;(*canmsgctrl2)=0x0008;/*此處用于添加接收郵箱的初始數(shù)據(jù)值*/(*canmsgid3h)=0x7fff;(*canmsgid3l)=oxffff;(*canmsgctrl3)=ox0008;/*此處用于添加發(fā)送郵箱的初始數(shù)據(jù)值*(*canmcr)=0x04c0;(*canmder)=0x004c;34 信息的發(fā)送數(shù)據(jù)寫(xiě)到發(fā)送郵箱的數(shù)據(jù)區(qū)后假如相

10、應(yīng)的發(fā)送哀求位使能則信息幀被發(fā)送到總線(xiàn)網(wǎng)絡(luò)上,囫圇過(guò)程以查詢(xún)的方式完成。詳細(xì)的操作步驟如下:(1)初始化發(fā)送郵箱;(2)設(shè)置canmcr寄存器中的郵箱使能位為1,即men=i;(3)設(shè)置cantcr寄存器中的發(fā)送哀求位為1,即tsrn=i; ·(4)等待發(fā)送應(yīng)答信號(hào)tan或發(fā)送中斷標(biāo)記位mifn置位:(5)清除發(fā)送中斷標(biāo)記位和發(fā)送應(yīng)答位,即向tan位寫(xiě)1即可。程序代碼如下:(*cantcr)=0x0020;while(*cantc r)&ox2000)=o);*cantcr)=0x2000;delay(2); 軟件延時(shí)子函數(shù)35 信息的接收接收過(guò)程以中斷的方式完成。詳細(xì)的操作

11、步驟如下:(1)設(shè)置局部屏蔽寄存器;(2)確定接收郵箱的標(biāo)識(shí)符和控制寄存器;(3)等待接收信息懸掛位rmpn或接收中斷標(biāo)記位mifn置位:(4)向rcr寄存器中的接收信息懸掛位rmpn寫(xiě)1,以清除接收中斷標(biāo)記位和接收信息懸掛位為下一次接收作預(yù)備。相應(yīng)中斷服務(wù)子程序如下:void canmbxisrfvoid)mailbox2接收中斷服務(wù)子程序(*canmder)=ox0040;(*canmcr)=ox0143;(*canmbx3a)=(*canmbx2a)+ox0012;(*canmbx3b)=(*canmbx2b)+0x0034;(*canmbx3c)=(*canmbx2c)+ox0056;(*canmbx3d):(*canmbx2d)+0x0078;(*anmcr)=ox04c0:(*canmder)=0x004o;(*canrcr)=ox0040;/復(fù)住rmp2和。mif236 檢測(cè)結(jié)果檢測(cè)結(jié)果4所示,將放置郵箱數(shù)據(jù)的內(nèi)存區(qū)域(0x7214ox721f)相應(yīng)單元作差后的值與程序設(shè)計(jì)中的代碼偏移量舉行比較,可知郵箱2與其他部分都能正常工作,而且id標(biāo)識(shí)符與屏蔽設(shè)置正確,否則內(nèi)存區(qū)域就接收不到相關(guān)數(shù)據(jù)。4 結(jié)束語(yǔ)借助于試驗(yàn)室調(diào)試勝利的ecan檢測(cè)程序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論