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

下載本文檔

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

文檔簡介

1、LF2407 型 DSP 內(nèi)嵌 eCAN 模塊的檢測程序設(shè)計摘要:以 TI 公司 LF2407 型 DSPg制器為對象,介紹基于 CAN2 0B 總線協(xié)議的 外設(shè)通信模塊 e-CAN 檢測程序設(shè)計,給出硬件系統(tǒng)的構(gòu)成框圖及軟件實現(xiàn)過程的 相關(guān)代碼。實驗室調(diào)試表明,該程序可以用來判定 ID 標識符與屏蔽碼的正確與 否以及郵箱的工作狀況,同時能夠減少項目早期研究過程中對硬件模塊的需 求。關(guān)鍵詞:CAN總線通信:DSP 程序設(shè)計;CAN 空制器自檢;數(shù)字信號處理器 1 引言 LF2407 型數(shù)字信號處理器(DSP)以其處理能力強(30MI/S),外設(shè)功能模摘 要:以 TI 公司 LF2407 型 D

2、SP 控制器為對象,介紹基于 CAF2. 0B 總線協(xié) 議的外設(shè)通信模塊 e-CAN 檢測程序設(shè)計,給出硬件系統(tǒng)的構(gòu)成框圖及軟件實現(xiàn)過 程的相關(guān)代碼。實驗室調(diào)試表明,該程序可以用來判定 ID 標識符與屏蔽碼的正 確與否以及郵箱的工作狀況,同時能夠減少項目早期研究過程中對硬件模塊的 需求。關(guān)鍵詞:CAN 總線通信:DSP 程序設(shè)計;CANS制器自檢;數(shù)字信號處理器1 引言LF2407 型數(shù)字信號處理器(DSP)以其處理能力強(30 MI/s),外設(shè)功能 模塊集成度高及存儲器容量大等特點廣泛應(yīng)用于數(shù)字化控制與通信領(lǐng)域。筆者 以某車載武器系統(tǒng)的前期預研為背景,討論了該處理器內(nèi)嵌模塊eCAN 的檢測功

3、能及其軟硬件實現(xiàn)過程。2 檢測系統(tǒng)的功能與硬件構(gòu)成2. 1 eCA N 控制模塊該控制器是一個 16bit 的外圍器件,其特性有: (1) 完全支持 CAN20B 協(xié)議; (2) 具有 6 個郵箱,其中 mailbox2 與 mailtiox3 可按工程需求配置為接 收或發(fā)送郵箱,數(shù)據(jù)長度為 08 字節(jié); (3) 當發(fā)送時出錯或仲裁過程中數(shù)據(jù)丟 失時,該控制器具有自動重發(fā)功能; (4) 能夠通過軟件編程實現(xiàn)自檢測功能。對 eCAN 模塊的操作分為對控制,狀態(tài)寄存器的訪問以及對郵箱RAM 的讀寫三個部分。這些寄存器與郵箱在 內(nèi)存空間的分配如圖 1 所示,其中, 7200H 叼230H 所在 RA

4、M 區(qū)域為 6 個郵箱的分布地址。22硬件電路的連接對于 LF2407 型處理器而言,如果源代碼編譯后放在程序區(qū)0 x0000 地址開始的空間.當引腳 nap/me 配置為 mp 方式時.則 007FFF 下空間被映射到 外部存儲器,此時必須在 DSP 外有相應(yīng)的存儲器方可正常加載,否則就會一直提 示“ Dataverificati on failed at address Ox0 . Please verify targetmemory andmempryiap的信息。當引腳配置為 me 方式,則 007FFF 這段空間由片內(nèi) Flash 提供, 代碼程序要放在片內(nèi) F1ash 中, 就必須

5、用燒寫操作完成。一般 說來,前者適用于在線調(diào)試的開發(fā)方式:對于已經(jīng)定型的軟件代碼,當要脫機運 行時用后者較為方便。筆者選用外擴存儲器的方式來完成* out 文件的加載其中 74 陽 8 器件的功用是將 CY7C1021 型電路的內(nèi)存區(qū)域一分二,分別用 作外擴的程序空間與數(shù)據(jù)空間。如圖 2 所示,PCA82C25 為總線驅(qū)動器.是 LF2407 內(nèi)嵌 CAN 空制器與 特殊總線之間所需要的接口電路,實現(xiàn)對總線的差動發(fā)送與接收能力。在硬件 連接時要注意將 RS 引腳接地使 PCA82C25 處于高速模式下,而且為完成檢測功 能,CANr 引腳和 CANL 引腳應(yīng)通過阻值為 120Q的終端匹配電阻器

6、相連接。在項目開發(fā)過程中,筆者使用帶 ISA 接口的 仿真器 驅(qū)動板.盡管不需要 驅(qū)動程序.但還是要安裝 SetupC2XX exe 文件.否則在 Code Composer 集成開 發(fā)環(huán)境內(nèi)會出現(xiàn)調(diào)試困難。3 軟件編程31 配置存儲器 因為設(shè)計硬件時采用的是外擴存儲器的方式。所以為了正確地加載輸出文件.必須對 CY7C1021 乍引導配置。具體說來就是修改 initgel 文件中的StartUp 函數(shù) ( 該函數(shù)在系統(tǒng)默認狀態(tài)下為空函數(shù)。一般說來, 每次進人 CedeComposer 集成開發(fā)環(huán)境時,它都會被調(diào)用。對于硬件系統(tǒng)的初始化代碼經(jīng)常放 置于其內(nèi) )。下面給出主要的代碼語句:Star

7、tUp0GEL_MapReset;0GEL_MapAdd(0 x000,0 0, 0 x7fff,1 , 1) ;GEL_MapAdd(0 x800,0 0, 0 xT000, 1 , 1) ;GEL_MapAdd(0 x000,0 1, 0 x10000, l , 1);GEL_MapAdd(0 xffff,2 , 1, 1, 1);GEL_MapOn;OGEL_MemoryFill(0 xffff,2 , l , Ox40);*(volatile unsignedint*)SCSRI=0 x0200;*(volatile unsignedint*)SCSR2=0 x000C;*(volat

8、ile unsignedint*)WDNTR=Ox006f;*(volatile unsigned int*)WDKEY=0 x055;*(volatile unsigned int*)WDKEY=Ox0AA;如果需要開發(fā)相應(yīng)的 Flash 燒寫子程序可以參考此部分的格式完成。32系統(tǒng)初始化或重新配置位定時器相應(yīng)的操乍步驟如下:設(shè)置 CANMC 寄存器中的改變配置請求位為 1,即CCR=I(2) 判斷 CANGS 寄存器中的改變配置使能位是否為 1,即 CCE 是否為 l:(3) 設(shè)置 CANBCR 和 CANBCR 寄存器以確定波特率、同步跳轉(zhuǎn)寬度及采樣次數(shù)等(4)清 CANMC 寄存器中的

9、改變配置請求位為 0.即 CCR=O判斷 CANGS 寄存器中的改變配置使能位是否為 0,即 CCE 是否為 0;(6) 配置完成進入正常工作模式。主要程序代碼如下:(*MCRB)=(*MCRB)10 x00c0;(*CANIFR)=0 xffff ;(*CANLAMlH)=0 x7fff(*CANLAMlL)=Oxffff ;(*CANMCR)=Oxl04;0 while(*CANGSR)&0 x0010)=0) ;/ CCF 如果不等于 1則進行軟件等待 狀態(tài)(*CANBCR2)=0 x000;2(*CANBCRl)=0 x0023;/ BaudRate=500 kb/s(*CANM

10、C R)=(*CANMCR)&0 xeff;f while(*CANGSR)&0 x0010)=I) ;按 CAN2 0B 協(xié)議構(gòu)成的總線通信系統(tǒng),節(jié)點之間的波特率誤差容限要 求相當高。 與 RS232 串行通信方式相比.因為其幀長遠大于后者,考慮到累加效 應(yīng)的影響,即便是很小的波特率誤差也會使數(shù)據(jù)交換失敗。波特率 r 的相關(guān)計 算公式為:r=-fcLK /(Brp+1) /(TSEG1+1)+(TSEG2+1)+1 (1)其中,Brp 為預分頻系數(shù) fCLK 為 LF2407 的工作頻率,其值是外部晶振 體振蕩器頻率與鎖相環(huán)倍頻或分頻系數(shù)之積,時間段TSEG1 與 TSEG2 在位配置寄存器

11、 BCR2 中定義。本系統(tǒng)中晶體振蕩器頻率為 15MHz 鎖相環(huán)倍頻系數(shù)為 l,那么r=(15 MHz/3)/(4+1)+(3+1)+1) ,即 05 MHz。3 3 郵箱的初始化 相關(guān)的流程如圖 3 所示。部分代碼如下:(*CANMDER)=0 x004;0 /將郵箱 2 配置為接收、 郵箱 3 為發(fā)送(*CANMC R1=0 x014;0(*CANMSGID2H)=0 x7fff;(*CANMSGID2L)=0 xffff ;(*CANMSGCTRL2)=0 x00;08/* 此處用于添加接收郵箱的初始數(shù)據(jù)值 */(*CANMSGID3H)=0 x7fff;(*CANMSGID3L)=0

12、xffff;(*CANMSGCTRL3)=0 x00;08/* 此處用于添加發(fā)送郵箱的初始數(shù)據(jù)值 */(*CANMCR)=0 x04C;0(*CANMDER)=0 x004;c 3 4 信息的發(fā)送 數(shù)據(jù)寫到發(fā)送郵箱的數(shù)據(jù)區(qū)后如果相應(yīng)的發(fā)送請求位使能則信息幀 被發(fā)送到總線網(wǎng)絡(luò)上,整個過程以查詢的方式完成。具體的操作步驟如下:(1) 初始化發(fā)送郵箱;設(shè)置 CANMC 寄存器中的郵箱使能位為 1,即 MEN=I設(shè)置 CANTC 寄存器中的發(fā)送請求位為 1,即 TSRN=I ·(4)等待發(fā)送應(yīng)答信號 TAN 或發(fā)送中斷標志位 MIFN 置位:清除發(fā)送中斷標志位和發(fā)送應(yīng)答位,即向 TAN 位寫

13、 1 即可。程序代碼如下:(*CANTCR)=0 x0020; while(*CANTC R)&Ox2000)=o) ; *CANTCR)=0 x2000delay(2) ; 軟件延時子函數(shù)35 信息的接收 接收過程以中斷的方式完成。具體的操作步驟如下:(1) 設(shè)置局部屏蔽寄存器;(2) 確定接收郵箱的標識符和控制寄存器;(3) 等待接收信息懸掛位 RMP 或接收中斷標志位 MIFN 置位:(4) 向 RCR 寄存器中的接收信息懸掛位 RMPNI 1,以清除接收中斷標志 位和接收信息懸掛位為下一次接收作準備。相應(yīng)中斷服務(wù)子程序如下:void CANMBXISRfvoid)mailbox2 接收

14、中斷服務(wù)子程序(*CANMDER)=Ox0040(*CANMCR)=Ox0143(*CANMBX3A)=(*CANMBX2A)+Ox0012(*CANMBX3B)=(*CANMBX2B)+0 x0034(*CANMBX3C)=(*CANMBX2C)+Ox0056(*CANMBX3D:) (*CANMBX2D)+0 x0078(*ANMCR)=Ox04C:0(*CANMDER)=0 x004o(*CANRCR)=OxOO40 復住 RMP2。MIF236 檢測結(jié)果檢測結(jié)果如圖 4 所示,將放置郵箱數(shù)據(jù)的內(nèi)存區(qū)域(0 x7214Ox721f)相應(yīng)單元作差后的值與程序設(shè)計中的代碼偏移量進行比較 , 可知郵箱 2 與其他部分 都能正常工作,而且 ID 標識符與屏蔽設(shè)置正確,否則內(nèi)存區(qū)域就接收不到相關(guān)數(shù) 據(jù)。4結(jié)束

溫馨提示

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

評論

0/150

提交評論